diff --git a/app/layouts/admin/navbar.tsx b/app/layouts/admin/navbar.tsx index 366faa7..fd58500 100644 --- a/app/layouts/admin/navbar.tsx +++ b/app/layouts/admin/navbar.tsx @@ -1,12 +1,15 @@ -import { Link } from 'react-router' +import { Button, Popover, PopoverButton, PopoverPanel } from '@headlessui/react' +import { Link, useFetcher, useRouteLoaderData } from 'react-router' import { ChevronIcon } from '~/components/icons/chevron' import { NotificationIcon } from '~/components/icons/notification' import { APP } from '~/configs/meta' -import { useAdminContext } from '~/contexts/admin' +import type { loader } from '~/routes/_admin.lg-admin' export const Navbar = () => { - const { adminProfile } = useAdminContext() + const loaderData = useRouteLoaderData('routes/_admin.lg-admin') + const staffData = loaderData?.staffData + const fetcher = useFetcher() return (
@@ -21,13 +24,37 @@ export const Navbar = () => { />
-
-
-
- {adminProfile.name} -
- -
+ + +
+ {staffData?.name} + {staffData?.name} +
+ +
+ + + + + +
{ >
{group}
{items.map(({ title, url, icon: Icon }) => ( - { > {title} - + ))}
))} diff --git a/app/routes/_admin.lg-admin.tsx b/app/routes/_admin.lg-admin.tsx index f7e87de..7b38064 100644 --- a/app/routes/_admin.lg-admin.tsx +++ b/app/routes/_admin.lg-admin.tsx @@ -12,7 +12,7 @@ export const loader = async ({ request }: Route.LoaderArgs) => { const { staffToken } = await handleCookie(request) const { pathname } = new URL(request.url) const isAuthPage = AUTH_PAGES.includes(pathname) - let adminData + let staffData if (!isAuthPage && !staffToken) { throw redirect('/lg-admin/login') @@ -26,11 +26,11 @@ export const loader = async ({ request }: Route.LoaderArgs) => { const { data } = await getStaff({ accessToken: staffToken, }) - adminData = data + staffData = data } return { - adminData, + staffData, } } diff --git a/app/routes/actions.admin.logout.ts b/app/routes/actions.admin.logout.ts new file mode 100644 index 0000000..a67d82d --- /dev/null +++ b/app/routes/actions.admin.logout.ts @@ -0,0 +1,22 @@ +import { data } from 'react-router' + +import { setStaffLogoutHeaders } from '~/libs/logout-header.server' + +export const action = async () => { + try { + const responseHeaders = setStaffLogoutHeaders() + + return data( + { success: true }, + { headers: responseHeaders, status: 200, statusText: 'OK' }, + ) + } catch { + return data( + { + message: 'Something went wrong', + success: false, + }, + { status: 500 }, + ) + } +}