From 647599a39e66ed999c82d6f0b7e8851344f65cf2 Mon Sep 17 00:00:00 2001 From: Daniel Abramov Date: Mon, 3 Jul 2023 18:45:42 +0100 Subject: [PATCH] Use `useMemo` in a proper way in `ClientContext` --- src/ClientContext.tsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/ClientContext.tsx b/src/ClientContext.tsx index a440e46a..d488d6de 100644 --- a/src/ClientContext.tsx +++ b/src/ClientContext.tsx @@ -22,6 +22,7 @@ import { createContext, useContext, useRef, + useMemo, } from "react"; import { useHistory } from "react-router-dom"; import { MatrixClient } from "matrix-js-sdk/src/client"; @@ -263,11 +264,9 @@ export const ClientProvider: FC = ({ children }) => { }, [initClientState?.client, setAlreadyOpenedErr, t]) ); - const [state, setState] = useState(undefined); - useEffect(() => { + const state: ClientState = useMemo(() => { if (alreadyOpenedErr) { - setState({ state: "error", error: alreadyOpenedErr }); - return; + return { state: "error", error: alreadyOpenedErr }; } let authenticated = undefined; @@ -280,7 +279,7 @@ export const ClientProvider: FC = ({ children }) => { }; } - setState({ state: "valid", authenticated, setClient }); + return { state: "valid", authenticated, setClient }; }, [alreadyOpenedErr, changePassword, initClientState, logout, setClient]); useEffect(() => {