diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 72e84f0..d5ea7b5 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,4 +1,4 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect, useCallback } from 'react'; import { Routes, Route, Navigate } from 'react-router-dom'; import { AuthProvider, useAuth } from './contexts/AuthContext'; import Login from './pages/Login'; @@ -20,18 +20,22 @@ function AppInner() { const [loading, setLoading] = useState(true); const [isConfigured, setIsConfigured] = useState(false); - const checkSettings = () => { + const checkSettings = useCallback(() => { api.getSettings() .then(data => { setIsConfigured(!!(data && data.onboarding_completed)); }) .catch(() => setIsConfigured(false)) .finally(() => setLoading(false)); - }; + }, []); useEffect(() => { + if (!user) { + setLoading(false); + return; + } checkSettings(); - }, []); + }, [user, checkSettings]); if (authLoading || loading) { return
Loading...
; diff --git a/frontend/src/contexts/AuthContext.tsx b/frontend/src/contexts/AuthContext.tsx index 3279304..beec475 100644 --- a/frontend/src/contexts/AuthContext.tsx +++ b/frontend/src/contexts/AuthContext.tsx @@ -11,7 +11,7 @@ window.fetch = function (input: RequestInfo | URL, init?: RequestInit): Promise< } } return origFetch.call(window, input, init).then((res) => { - if (res.status === 401 && url.startsWith("/api/") && !url.startsWith("/api/auth/login") && !url.startsWith("/api/auth/me")) { + if (res.status === 401 && url.startsWith("/api/") && !url.startsWith("/api/auth/login") && !url.startsWith("/api/auth/me") && localStorage.getItem("token")) { localStorage.removeItem("token"); window.location.href = "/login"; }