diff --git a/client/src/components/Lobby.jsx b/client/src/components/Lobby.jsx new file mode 100644 index 0000000..9bb2c05 --- /dev/null +++ b/client/src/components/Lobby.jsx @@ -0,0 +1,64 @@ +import { useSocket } from '@/context/SocketProvider'; +import { useRouter } from 'next/router'; +import React, { useCallback, useEffect, useState } from 'react' + +const LobbyScreen = () => { + const [email, setEmail] = useState(""); + const [room, setRoom] = useState(""); + + const socket = useSocket(); + const router = useRouter(); + // console.log(socket); + + const handleSubmitForm = useCallback((e) => { + e.preventDefault(); + socket.emit('room:join', { email, room }); + }, [email, room, socket]); + + const handleJoinRoom = useCallback((data) => { + const { email, room } = data; + router.push(`/room/${room}`); + }, [router]); + + useEffect(() => { + socket.on("room:join", handleJoinRoom); + return () => { + socket.off("room:join", handleJoinRoom); + } + }, [socket, handleJoinRoom]); + + return ( +