wrapped context vlaues with usememo

This commit is contained in:
Quentin Roussel
2024-03-26 03:40:03 +01:00
parent 7d75e91c80
commit 37fc6b6fa8
5 changed files with 17 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
"use client"; "use client";
import { createContext, useContext, useState } from "react"; import { createContext, useContext, useMemo, useState } from "react";
import { useSocket } from "./socketContext"; import { useSocket } from "./socketContext";
import { useSocketListener } from "@/hook/useSocketListener"; import { useSocketListener } from "@/hook/useSocketListener";
@@ -14,8 +14,10 @@ const AdminConnexionProvider = ({ children }) => {
useSocketListener(adminSocket, "login_response", setLoggedIn); useSocketListener(adminSocket, "login_response", setLoggedIn);
const value = useMemo(() => ({ login, loggedIn }), [loggedIn]);
return ( return (
<adminContext.Provider value={{ login, loggedIn }}> <adminContext.Provider value={value}>
{children} {children}
</adminContext.Provider> </adminContext.Provider>
); );

View File

@@ -1,5 +1,5 @@
"use client"; "use client";
import { createContext, useContext, useEffect, useState } from "react"; import { createContext, useContext, useEffect, useMemo, useState } from "react";
import { useSocket } from "./socketContext"; import { useSocket } from "./socketContext";
import { useSocketListener } from "@/hook/useSocketListener"; import { useSocketListener } from "@/hook/useSocketListener";
import { useAdminConnexion } from "./adminConnexionContext"; import { useAdminConnexion } from "./adminConnexionContext";
@@ -21,8 +21,9 @@ function AdminProvider({children}) {
useSocketListener(adminSocket, "teams", setTeams); useSocketListener(adminSocket, "teams", setTeams);
useSocketListener(adminSocket, "game_started", setStarted); useSocketListener(adminSocket, "game_started", setStarted);
const value = useMemo(() => ({teams, setTeams, started, setStarted}), [teams, started]);
return ( return (
<adminContext.Provider value={{teams, setTeams, started, setStarted}}> <adminContext.Provider value={value}>
{children} {children}
</adminContext.Provider> </adminContext.Provider>
); );

View File

@@ -1,5 +1,5 @@
"use client"; "use client";
import { createContext, useContext } from "react"; import { createContext, useContext, useMemo } from "react";
const { io } = require("socket.io-client"); const { io } = require("socket.io-client");
@@ -12,8 +12,9 @@ export const adminSocket = io(ADMIN_SOCKET_URL);
export const SocketContext = createContext(); export const SocketContext = createContext();
export default function SocketProvider({ children }) { export default function SocketProvider({ children }) {
const value = useMemo(() => ({ teamSocket, adminSocket }), [teamSocket, adminSocket]);
return ( return (
<SocketContext.Provider value={{teamSocket, adminSocket}}>{children}</SocketContext.Provider> <SocketContext.Provider value={value}>{children}</SocketContext.Provider>
); );
} }

View File

@@ -1,5 +1,5 @@
"use client"; "use client";
import { createContext, useContext, useState } from "react"; import { createContext, useContext, useMemo, useState } from "react";
import { useSocket } from "./socketContext"; import { useSocket } from "./socketContext";
import { useSocketListener } from "@/hook/useSocketListener"; import { useSocketListener } from "@/hook/useSocketListener";
@@ -15,9 +15,11 @@ const TeamConnexionProvider = ({ children }) => {
} }
useSocketListener(teamSocket, "login_response", setLoggedIn); useSocketListener(teamSocket, "login_response", setLoggedIn);
const value = useMemo(() => ({ teamId, login, loggedIn }), [teamId, login, loggedIn]);
return ( return (
<teamConnexionContext.Provider value={{ teamId, login, loggedIn }}> <teamConnexionContext.Provider value={value}>
{children} {children}
</teamConnexionContext.Provider> </teamConnexionContext.Provider>
); );

View File

@@ -1,7 +1,7 @@
"use client"; "use client";
import { useLocation } from "@/hook/useLocation"; import { useLocation } from "@/hook/useLocation";
import { useSocketListener } from "@/hook/useSocketListener"; import { useSocketListener } from "@/hook/useSocketListener";
import { createContext, useContext, useEffect, useState } from "react"; import { createContext, useContext, useEffect, useMemo, useState } from "react";
import { useSocket } from "./socketContext"; import { useSocket } from "./socketContext";
import { useTeamConnexion } from "./teamConnexionContext"; import { useTeamConnexion } from "./teamConnexionContext";
@@ -22,8 +22,9 @@ function TeamProvider({children}) {
} }
}, [loggedIn, currentPosition]); }, [loggedIn, currentPosition]);
const value = useMemo(() => ({enemyPosition, currentPosition}), [enemyPosition, currentPosition]);
return ( return (
<teamContext.Provider value={{enemyPosition, currentPosition}}> <teamContext.Provider value={value}>
{children} {children}
</teamContext.Provider> </teamContext.Provider>
); );