import React, { useEffect, useState, createContext } from 'react'; import { io } from 'socket.io-client'; import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; import ReactLoading from 'react-loading'; import Gameboard from './components/Gameboard/Gameboard'; import LoginPage from './components/LoginPage/LoginPage'; export const PlayerDataContext = createContext(); export const SocketContext = createContext(); function App() { const [playerData, setPlayerData] = useState(); const [playerSocket, setPlayerSocket] = useState(); const [redirect, setRedirect] = useState(); useEffect(() => { const socket = io(`http://${window.location.hostname}:8080`, { withCredentials: true }); socket.on('player:data', data => { data = JSON.parse(data); setPlayerData(data); if (data.roomId != null) { setRedirect(true); } }); setPlayerSocket(socket); }, []); return ( { if (redirect) { return ; } else if (playerSocket) { return ; } else { return ; } }} > { if (redirect) { return ; } else if (playerSocket) { return ; } else { return ; } }} > { if (playerData) { return ( ); } else { return ; } }} > ); } export default App;