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 <noreply@anthropic.com>
This commit is contained in:
Christian Vidal Wolf
2026-04-10 08:32:03 +02:00
co-authored by Claude Sonnet 4.6
parent 1339a34bb0
commit 64a9c40ec3
+10 -10
View File
@@ -45,14 +45,6 @@ export default function App() {
setSession(null);
};
if (!session) {
return <LoginPage onLogin={() => {
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<HTMLInputElement>) => {
const file = e.target.files?.[0];
@@ -374,6 +366,14 @@ export default function App() {
};
}, [appState.data]);
if (!session) {
return <LoginPage onLogin={() => {
const stored = getStoredSession();
console.log('[App] onLogin, stored session:', stored ? 'found' : 'null');
setSession(stored);
}} />;
}
return (
<div className="h-screen bg-[#040d1a] text-slate-200 flex flex-col font-sans overflow-hidden">
<TopBar