From 790b7992bb8d8f04f4d41a6953884476ef289de8 Mon Sep 17 00:00:00 2001 From: Mathieu Virbel Date: Fri, 29 Aug 2025 18:52:13 -0600 Subject: [PATCH] fix: remove infinite re-render loop in useSessionAccessToken The hook was maintaining redundant local state that caused re-renders on every update, which triggered NextAuth to continuously refetch the session, resulting in hundreds of POST requests to /api/auth/session. Simplified the hook to directly return session values without unnecessary state duplication. --- www/app/lib/useSessionAccessToken.ts | 33 +++------------------------- 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/www/app/lib/useSessionAccessToken.ts b/www/app/lib/useSessionAccessToken.ts index fc28c076..a40d965a 100644 --- a/www/app/lib/useSessionAccessToken.ts +++ b/www/app/lib/useSessionAccessToken.ts @@ -1,42 +1,15 @@ "use client"; -import { useState, useEffect } from "react"; import { useSession as useNextAuthSession } from "next-auth/react"; import { CustomSession } from "./types"; export default function useSessionAccessToken() { const { data: session } = useNextAuthSession(); const customSession = session as CustomSession; - const naAccessToken = customSession?.accessToken; - const naAccessTokenExpires = customSession?.accessTokenExpires; - const naError = customSession?.error; - const [accessToken, setAccessToken] = useState(null); - const [accessTokenExpires, setAccessTokenExpires] = useState( - null, - ); - const [error, setError] = useState(); - - useEffect(() => { - if (naAccessToken !== accessToken) { - setAccessToken(naAccessToken); - } - }, [naAccessToken]); - - useEffect(() => { - if (naAccessTokenExpires !== accessTokenExpires) { - setAccessTokenExpires(naAccessTokenExpires); - } - }, [naAccessTokenExpires]); - - useEffect(() => { - if (naError !== error) { - setError(naError); - } - }, [naError]); return { - accessToken, - accessTokenExpires, - error, + accessToken: customSession?.accessToken ?? null, + accessTokenExpires: customSession?.accessTokenExpires ?? null, + error: customSession?.error, }; }