import React, { useContext, useEffect, useState } from 'react'; import { SocketContext } from '../../../App'; import refresh from '../../../images/login-page/refresh.png'; import NameInput from '../NameInput/NameInput'; import Overlay from '../../Overlay/Overlay'; import WindowLayout from '../WindowLayout/WindowLayout'; import ServersTable from './ServersTable/ServersTable'; import withLoading from '../../HOC/withLoading'; import useSocketData from '../../../hooks/useSocketData'; import styles from './JoinServer.module.css'; const JoinServer = () => { const socket = useContext(SocketContext); const [rooms, setRooms] = useSocketData('room:rooms'); const [joining, setJoining] = useState(false); const [clickedRoom, setClickedRoom] = useState(null); const [isLoading, setIsLoading] = useState(true); useEffect(() => { socket.emit('room:rooms'); socket.on('room:rooms', () => { setIsLoading(false); }); }, [socket]); const getRooms = () => { setRooms([]); socket.emit('room:rooms'); }; const handleJoinClick = room => { setClickedRoom(room); setJoining(true); }; const ServersTableWithLoading = withLoading(ServersTable); return ( <> refresh } content={
} /> {joining ? ( setJoining(false)}> ) : null} ); }; export default JoinServer;