forked from baron/baron-sso
50 lines
1.8 KiB
TypeScript
50 lines
1.8 KiB
TypeScript
import { Navigate, createBrowserRouter } from "react-router-dom";
|
|
import AppLayout from "../components/layout/AppLayout";
|
|
import AuditLogsPage from "../features/audit/AuditLogsPage";
|
|
import AuthCallbackPage from "../features/auth/AuthCallbackPage";
|
|
import AuthGuard from "../features/auth/AuthGuard";
|
|
import LoginPage from "../features/auth/LoginPage";
|
|
import ClientConsentsPage from "../features/clients/ClientConsentsPage";
|
|
import ClientDetailsPage from "../features/clients/ClientDetailsPage";
|
|
import ClientGeneralPage from "../features/clients/ClientGeneralPage";
|
|
import ClientsPage from "../features/clients/ClientsPage";
|
|
import ProfilePage from "../features/profile/ProfilePage";
|
|
|
|
export const router = createBrowserRouter(
|
|
[
|
|
{
|
|
path: "/login",
|
|
element: <LoginPage />,
|
|
},
|
|
{
|
|
path: "/callback",
|
|
element: <AuthCallbackPage />,
|
|
},
|
|
{
|
|
path: "/",
|
|
element: <AuthGuard />,
|
|
children: [
|
|
{
|
|
element: <AppLayout />,
|
|
children: [
|
|
{ index: true, element: <Navigate to="/clients" replace /> },
|
|
{ path: "clients", element: <ClientsPage /> },
|
|
{ path: "clients/new", element: <ClientGeneralPage /> },
|
|
{ path: "clients/:id", element: <ClientDetailsPage /> },
|
|
{ path: "clients/:id/consents", element: <ClientConsentsPage /> },
|
|
{ path: "clients/:id/settings", element: <ClientGeneralPage /> },
|
|
{ path: "audit-logs", element: <AuditLogsPage /> },
|
|
{ path: "profile", element: <ProfilePage /> },
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
// React Router v7 플래그 사전 적용 (현재 타입 정의에 없어 any 캐스팅)
|
|
{
|
|
future: {
|
|
v7_startTransition: true,
|
|
},
|
|
} as unknown as Parameters<typeof createBrowserRouter>[1],
|
|
);
|