diff --git a/ui/src/App.jsx b/ui/src/App.jsx index 9192e82..4fa31eb 100644 --- a/ui/src/App.jsx +++ b/ui/src/App.jsx @@ -26,6 +26,8 @@ export default function App() { async function handleLogin(user, pass) { setCredentials(user, pass) await api.getSources().then(s => { + sessionStorage.setItem('df_user', user) + sessionStorage.setItem('df_pass', pass) setSources(s) if (!source && s.length > 0) setSource(s[0].name) setAuthed(true) @@ -35,20 +37,19 @@ export default function App() { function handleLogout() { clearCredentials() + sessionStorage.removeItem('df_user') + sessionStorage.removeItem('df_pass') setAuthed(false) setLoginUser('') setSources([]) } + // On mount, restore session if credentials are saved useEffect(() => { - if (!authed) return - api.getSources().then(s => { - setSources(s) - if (!source && s.length > 0) setSource(s[0].name) - }).catch(err => { - if (err.status === 401) handleLogout() - }) - }, [authed]) + const user = sessionStorage.getItem('df_user') + const pass = sessionStorage.getItem('df_pass') + if (user && pass) handleLogin(user, pass).catch(() => handleLogout()) + }, []) useEffect(() => { if (source) localStorage.setItem('selectedSource', source)