diff --git a/components/layouts/header.tsx b/components/layouts/header.tsx index 2e14c2c..99934ef 100644 --- a/components/layouts/header.tsx +++ b/components/layouts/header.tsx @@ -22,6 +22,7 @@ import IconUser from '@/components/icon/icon-user'; import IconMail from '@/components/icon/icon-mail'; import IconLockDots from '@/components/icon/icon-lock-dots'; import IconLogout from '@/components/icon/icon-logout'; +import Cookies from 'universal-cookie'; import IconMenuDashboard from '@/components/icon/menu/icon-menu-dashboard'; import IconCaretDown from '@/components/icon/icon-caret-down'; import IconMenuApps from '@/components/icon/menu/icon-menu-apps'; @@ -80,6 +81,29 @@ const Header = () => { router.refresh(); }; + const handleSignOut = () => { + try { + const cookies = new Cookies(); + // remove common auth cookies if present + cookies.remove('token', { path: '/' }); + cookies.remove('auth', { path: '/' }); + cookies.remove('i18nextLng', { path: '/' }); + } catch (e) { + // ignore + } + + // remove known localStorage keys (avoid removing theme prefs) + try { + localStorage.removeItem('authToken'); + localStorage.removeItem('user'); + } catch (e) { + // ignore + } + + // Redirect to the login page. app/(auth)/login maps to `/login` in the URL. + router.replace('/login'); + }; + function createMarkup(messages: any) { return { __html: messages }; } @@ -225,10 +249,10 @@ const Header = () => {
  • - +