mirror of
https://git.rezel.net/LudoTech/traque.git
synced 2026-02-09 10:20:16 +01:00
implemented game state in front end
This commit is contained in:
@@ -3,15 +3,17 @@ import { createContext, useContext, useEffect, useMemo, useState } from "react";
|
||||
import { useSocket } from "./socketContext";
|
||||
import { useSocketListener } from "@/hook/useSocketListener";
|
||||
import { useAdminConnexion } from "./adminConnexionContext";
|
||||
import { GameState } from "@/util/gameState";
|
||||
|
||||
const adminContext = createContext();
|
||||
|
||||
function AdminProvider({children}) {
|
||||
const [teams, setTeams] = useState([]);
|
||||
const [started, setStarted] = useState(false);
|
||||
const { adminSocket } = useSocket();
|
||||
const {loggedIn} = useAdminConnexion();
|
||||
const [gameState, setGameState] = useState(GameState.SETUP);
|
||||
|
||||
useSocketListener(adminSocket, "game_state", setGameState);
|
||||
//Send a request to get the teams when the user logs in
|
||||
useEffect(() => {
|
||||
adminSocket.emit("get_teams");
|
||||
@@ -19,9 +21,8 @@ function AdminProvider({children}) {
|
||||
|
||||
//Bind listeners to update the team list and the game status on socket message
|
||||
useSocketListener(adminSocket, "teams", setTeams);
|
||||
useSocketListener(adminSocket, "game_started", setStarted);
|
||||
|
||||
const value = useMemo(() => ({teams, setTeams, started, setStarted}), [teams, started]);
|
||||
const value = useMemo(() => ({teams, setTeams, gameState}), [teams, gameState]);
|
||||
return (
|
||||
<adminContext.Provider value={value}>
|
||||
{children}
|
||||
|
||||
Reference in New Issue
Block a user