import React, { useState, useContext, useEffect, useCallback } from 'react'; import { SocketContext } from '../../../App'; import useInput from '../../../hooks/useInput'; import './NameInput.css'; import Overlay from '../../Overlay/Overlay'; const NameInput = ({ isRoomPrivate, roomId }) => { const socket = useContext(SocketContext); const nickname = useInput(''); const password = useInput(''); const [isPasswordWrong, setIsPasswordWrong] = useState(false); const handleButtonClick = useCallback(() => { socket.emit('player:login', { name: nickname.value, password: password.value, roomId: roomId }); }, [socket, nickname.value, password.value, roomId]); useEffect(() => { socket.on('error:wrongPassword', () => { setIsPasswordWrong(true); }); const keyDownHandler = event => { if (event.key === 'Enter') { event.preventDefault(); handleButtonClick(); } }; document.addEventListener('keydown', keyDownHandler); return () => { document.removeEventListener('keydown', keyDownHandler); }; }, [socket, handleButtonClick]); return (