diff --git a/app/(auth)/login-gest/page.tsx b/app/(auth)/login-gest/page.tsx deleted file mode 100644 index e5b3a5a..0000000 --- a/app/(auth)/login-gest/page.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import Link from 'next/link'; - -export default function LoginGest() { - return ( -
-
-
-

- Entra como Invitado y Únete a la Conversación -

-

- Conecta con otros asistentes desde cualquier parte del mundo. -

-
-
-
-
- - -
- -
-
-

¿Quieres crear una cuenta?

- - Click aquí - -
-
-
-
- ); -} diff --git a/app/(auth)/page.tsx b/app/(auth)/page.tsx index 24568df..bd9c650 100644 --- a/app/(auth)/page.tsx +++ b/app/(auth)/page.tsx @@ -19,7 +19,7 @@ export default function Home() { Transmite tu mensaje en segundos con tus compañeros de trabajo, estudio, viaje, fiesta y completos desconocidos.

- +
Ingresar a una Sala
diff --git a/app/(protected)/dashboard/_components/RoomSearch.tsx b/app/(protected)/dashboard/_components/RoomSearch.tsx index 1129f7f..7ad1b70 100644 --- a/app/(protected)/dashboard/_components/RoomSearch.tsx +++ b/app/(protected)/dashboard/_components/RoomSearch.tsx @@ -2,42 +2,30 @@ import LoadingEmoji from '@/app/_components/LoadingEmoji'; import { RoomIcon } from '@/app/_ui/icons'; -import { useQuery } from '@tanstack/react-query'; -import { getAllRooms } from '../_apis/rooms'; import RoomList from './RoomList'; +import { useGetPublicRooms } from '../_hooks/useGetPublicRooms'; export default function RoomSearch() { - const { data: rooms, isLoading } = useQuery({ - queryKey: ['all-rooms-dashboard'], - queryFn: getAllRooms, - }); + const { isLoading, fileteredRooms, handleSubmit } = useGetPublicRooms(); if (isLoading) return ; - const handleSubmit = (e: React.FormEvent) => { - e.preventDefault(); - const form = e.currentTarget; - const searchValue = form.search.value; - - // Aquí puedes manejar la búsqueda con el valor de searchValue - console.log('Buscando sala:', searchValue); - }; - return ( <> -
+
- {rooms ? ( - + {fileteredRooms ? ( + ) : (

No encontramos salas

diff --git a/app/(protected)/dashboard/_hooks/useGetPublicRooms.ts b/app/(protected)/dashboard/_hooks/useGetPublicRooms.ts new file mode 100644 index 0000000..d1c31a8 --- /dev/null +++ b/app/(protected)/dashboard/_hooks/useGetPublicRooms.ts @@ -0,0 +1,42 @@ +import { IRoom } from '@/app/_lib/_interfaces/IRoom'; +import { useQuery } from '@tanstack/react-query'; +import { useEffect, useState } from 'react'; +import { getAllRooms } from '../_apis/rooms'; + +export const useGetPublicRooms = () => { + const { data: rooms, isLoading } = useQuery({ + queryKey: ['all-rooms-dashboard'], + queryFn: getAllRooms, + }); + + const [fileteredRooms, setFilteredRooms] = useState(rooms); + + useEffect(() => { + if (rooms) { + setFilteredRooms(rooms); + } + }, [rooms]); + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + const searchValue = e.currentTarget.value; + + // Aquí puedes manejar la búsqueda con el valor de searchValue + if (searchValue.trim() === '' || !rooms) { + setFilteredRooms(rooms); + return; + } + + const filtered = rooms.filter(room => + room.name.toLowerCase().includes(searchValue.toLowerCase()) + ); + + setFilteredRooms(filtered.length > 0 ? filtered : []); + }; + + return { + isLoading, + fileteredRooms, + handleSubmit, + }; +}; diff --git a/app/(protected)/dashboard/room/[id]/page.tsx b/app/(protected)/dashboard/room/[id]/page.tsx index 9293c2f..49409e7 100644 --- a/app/(protected)/dashboard/room/[id]/page.tsx +++ b/app/(protected)/dashboard/room/[id]/page.tsx @@ -5,6 +5,7 @@ import LoadingEmoji from '@/app/_components/LoadingEmoji'; import { use } from 'react'; import { getRoomById } from '../../_apis/rooms'; import { useRoomMessages } from '../hooks/useRoomMessages'; +import { toast } from 'react-toastify'; interface RouterProps { params: Promise<{ @@ -23,11 +24,28 @@ export default function RoomPage({ params }: RouterProps) { if (loading || roomLoading) return ; + const handleCopyUrl = () => { + const url = `${window.location.origin}/dashboard/room/${id}`; + navigator.clipboard + .writeText(url) + .then(() => { + toast.success('URL copiada al portapapeles'); + }) + .catch(() => { + toast.error('Error al copiar la URL'); + }); + }; + return (
-
-

{room?.name}

-

{room?.isPrivate ? 'Privada' : 'Pública'}

+
+
+

{room?.name}

+

{room?.isPrivate ? 'Privada' : 'Pública'}

+
+
+ +
{room && }
diff --git a/app/_components/AsideDashboard.tsx b/app/_components/AsideDashboard.tsx index dbb8879..59108ea 100644 --- a/app/_components/AsideDashboard.tsx +++ b/app/_components/AsideDashboard.tsx @@ -22,7 +22,15 @@ export default function AsideDashboard() { {!isMobileLg && (
-

Stacks

+

Equipo orgulloso

-

Info

+

En las salas puedes

    -
  • Información
  • -
  • Salas
  • +
  • Buscar
  • +
  • Crear
  • - Únete + Unirse
diff --git a/app/_components/Header.tsx b/app/_components/Header.tsx index 908b98c..4b3891c 100644 --- a/app/_components/Header.tsx +++ b/app/_components/Header.tsx @@ -1,10 +1,8 @@ 'use client'; import Image from 'next/image'; import Link from 'next/link'; -import { useState } from 'react'; export default function Header() { - const [opened, setOpened] = useState(false); return (
{/* Mobile */} @@ -17,62 +15,15 @@ export default function Header() { Parchemos - Invitado -
-
-
    -
  • - Información -
  • -
  • - Salas -
  • -
  • - Contacto -
  • -
-
{/* Desktop */}
- + ParChat Logo -
-
    -
  • - - Información - -
  • -
  • - - Salas - -
  • -
  • - - Contacto - -
  • -
-