diff --git a/src/components/auth.tsx b/src/components/auth.tsx index 5971dda..408573d 100644 --- a/src/components/auth.tsx +++ b/src/components/auth.tsx @@ -11,7 +11,8 @@ export const Auth: React.FC = () => { Session.setBearerToken(token); window.location.replace(`${baseUrl}/overview`); } else { - Session.reset(); + Session.resetLastShownComponent(); + Session.resetBearerToken(); window.location.replace(`${baseUrl}/`); } diff --git a/src/components/login.tsx b/src/components/login.tsx index 6e332ba..e92b731 100644 --- a/src/components/login.tsx +++ b/src/components/login.tsx @@ -13,7 +13,8 @@ export const Login: React.FC = () => { useEffect(() => { Auth.tokenIsValid().then((status) => { if (status !== BackendReturnStatus.Ok) { - Session.reset(); + Session.resetLastShownComponent(); + Session.resetBearerToken(); setLoading(false); } else { navigate('/overview'); diff --git a/src/components/logout.tsx b/src/components/logout.tsx index e05f7e6..edf5e50 100644 --- a/src/components/logout.tsx +++ b/src/components/logout.tsx @@ -8,7 +8,8 @@ export const Logout: React.FC = () => { const navigate = useNavigate(); useEffect(() => { - Session.reset(); + Session.resetLastShownComponent(); + Session.resetBearerToken(); context.resetAuth(); navigate('/'); // eslint-disable-next-line react-hooks/exhaustive-deps diff --git a/src/services/session.ts b/src/services/session.ts index 46a0445..d3c2136 100644 --- a/src/services/session.ts +++ b/src/services/session.ts @@ -1,5 +1,5 @@ export class Session { - static reset(): void { + static resetBearerToken(): void { localStorage.removeItem('token'); } @@ -18,4 +18,16 @@ export class Session { static theme(): string | null { return localStorage.getItem('theme'); } + + static resetLastShownComponent(): void { + localStorage.removeItem('path'); + } + + static setLastShownComponent(path: string): void { + localStorage.setItem('path', path); + } + + static lastShownComponent(): string | null { + return localStorage.getItem('path'); + } }