From f872fb20f64de4a84956b2082f9b0819a871cc34 Mon Sep 17 00:00:00 2001 From: sianida26 Date: Sun, 5 May 2024 13:31:26 +0700 Subject: [PATCH] Added logout feature --- apps/frontend/src/routeTree.gen.ts | 11 +++++++++++ apps/frontend/src/routes/logout/index.tsx | 24 +++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 apps/frontend/src/routes/logout/index.tsx diff --git a/apps/frontend/src/routeTree.gen.ts b/apps/frontend/src/routeTree.gen.ts index e398fcb..dd0f156 100644 --- a/apps/frontend/src/routeTree.gen.ts +++ b/apps/frontend/src/routeTree.gen.ts @@ -14,6 +14,7 @@ import { createFileRoute } from '@tanstack/react-router' import { Route as rootRoute } from './routes/__root' import { Route as DashboardLayoutImport } from './routes/_dashboardLayout' +import { Route as LogoutIndexImport } from './routes/logout/index' import { Route as LoginIndexImport } from './routes/login/index' import { Route as DashboardLayoutDashboardIndexImport } from './routes/_dashboardLayout/dashboard/index' @@ -36,6 +37,11 @@ const IndexLazyRoute = IndexLazyImport.update({ getParentRoute: () => rootRoute, } as any).lazy(() => import('./routes/index.lazy').then((d) => d.Route)) +const LogoutIndexRoute = LogoutIndexImport.update({ + path: '/logout/', + getParentRoute: () => rootRoute, +} as any) + const LoginIndexRoute = LoginIndexImport.update({ path: '/login/', getParentRoute: () => rootRoute, @@ -71,6 +77,10 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof LoginIndexImport parentRoute: typeof rootRoute } + '/logout/': { + preLoaderRoute: typeof LogoutIndexImport + parentRoute: typeof rootRoute + } '/_dashboardLayout/dashboard/': { preLoaderRoute: typeof DashboardLayoutDashboardIndexImport parentRoute: typeof DashboardLayoutImport @@ -91,6 +101,7 @@ export const routeTree = rootRoute.addChildren([ DashboardLayoutUsersIndexLazyRoute, ]), LoginIndexRoute, + LogoutIndexRoute, ]) /* prettier-ignore-end */ diff --git a/apps/frontend/src/routes/logout/index.tsx b/apps/frontend/src/routes/logout/index.tsx new file mode 100644 index 0000000..ece921c --- /dev/null +++ b/apps/frontend/src/routes/logout/index.tsx @@ -0,0 +1,24 @@ +import isAuthenticated from "@/utils/isAuthenticated"; +import { createFileRoute, useNavigate } from "@tanstack/react-router"; +import { useEffect } from "react"; + +export const Route = createFileRoute("/logout/")({ + component: LogoutPage, +}); + +export default function LogoutPage() { + const navigate = useNavigate(); + + useEffect(() => { + if (isAuthenticated()) { + localStorage.removeItem("accessToken"); + } + + navigate({ + to: "/login", + replace: true, + }); + }, [navigate]); + + return
Logging out...
; +}