From 64a9c40ec3b55e53bfe7a1c96cfb1472af5f419a Mon Sep 17 00:00:00 2001 From: Christian Vidal Wolf Date: Fri, 10 Apr 2026 08:32:03 +0200 Subject: [PATCH] fix: move session check after all hooks to fix blank page on login Early conditional return before useEffect/useMemo violated React Rules of Hooks, causing error #300 (rendered more hooks than previous render) after login. Co-Authored-By: Claude Sonnet 4.6 --- src/App.tsx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index c1cd582..653b311 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -45,14 +45,6 @@ export default function App() { setSession(null); }; - if (!session) { - return { - const stored = getStoredSession(); - console.log('[App] onLogin, stored session:', stored ? 'found' : 'null'); - setSession(stored); - }} />; - } - useEffect(() => { const loadDefaultData = async () => { // In dev: Vite proxy handles /dropbox-file (see vite.config.ts) @@ -157,8 +149,8 @@ export default function App() { } }; - loadDefaultData(); - }, []); + if (session) loadDefaultData(); + }, [session]); const handleFileUpload = (e: React.ChangeEvent) => { const file = e.target.files?.[0]; @@ -374,6 +366,14 @@ export default function App() { }; }, [appState.data]); + if (!session) { + return { + const stored = getStoredSession(); + console.log('[App] onLogin, stored session:', stored ? 'found' : 'null'); + setSession(stored); + }} />; + } + return (