feat: add admin login page and authentication logic with form handling

This commit is contained in:
Ardeman
2025-03-03 16:33:30 +08:00
parent acd3e36b31
commit 4f4e94389e
16 changed files with 207 additions and 140 deletions
+9 -1
View File
@@ -1,6 +1,7 @@
import { Outlet } from 'react-router'
import { Outlet, redirect } from 'react-router'
import { getStaff } from '~/apis/admin/get-staff'
import { AUTH_PAGES } from '~/configs/pages'
import { AdminProvider } from '~/contexts/admin'
import { AdminDefaultLayout } from '~/layouts/admin/default'
import { handleCookie } from '~/libs/cookies'
@@ -9,7 +10,14 @@ import type { Route } from './+types/_admin.lg-admin'
export const loader = async ({ request }: Route.LoaderArgs) => {
const { adminToken } = await handleCookie(request)
const { pathname } = new URL(request.url)
const isAuthPage = AUTH_PAGES.includes(pathname)
let adminData
if (!isAuthPage && !adminToken) {
throw redirect('/lg-admin/login')
}
if (adminToken) {
const { data } = await getStaff({
accessToken: adminToken,