2026-06-02 02:42:07 +07:00
|
|
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
|
|
|
import {
|
|
|
|
|
createBrowserRouter,
|
|
|
|
|
RouterProvider,
|
|
|
|
|
Navigate,
|
|
|
|
|
} from "react-router-dom";
|
2026-06-02 07:12:49 +00:00
|
|
|
import { AuthInitializer } from "@/components/auth-initializer";
|
2026-06-06 03:01:07 +07:00
|
|
|
// import { AuthGuard } from "@/components/auth-guard";
|
2026-06-02 02:42:07 +07:00
|
|
|
import { DashboardPage } from "@/pages/dashboard-page";
|
|
|
|
|
import { ScanPage } from "@/pages/scan-page";
|
|
|
|
|
import { LibraryPage } from "@/pages/library-page";
|
|
|
|
|
import { CatalogPage } from "@/pages/catalog-page";
|
|
|
|
|
import { DiseaseDetailPage } from "@/pages/disease-detail-page";
|
|
|
|
|
import { DiagnosisDetailPage } from "@/pages/diagnosis-detail-page";
|
|
|
|
|
import { ExpertReviewsPage } from "@/pages/expert-reviews-page";
|
2026-06-02 03:24:40 +07:00
|
|
|
import { DiagnosesPage } from "@/pages/diagnoses-page";
|
2026-06-06 03:01:07 +07:00
|
|
|
// import { LoginPage } from "@/pages/login-page";
|
|
|
|
|
// import { RegisterPage } from "@/pages/register-page";
|
2026-06-02 02:42:07 +07:00
|
|
|
import { MainLayout } from "@/components/layout/main-layout";
|
2026-05-22 12:41:55 +00:00
|
|
|
|
|
|
|
|
const queryClient = new QueryClient();
|
|
|
|
|
|
|
|
|
|
const router = createBrowserRouter([
|
2026-06-05 19:01:48 +07:00
|
|
|
{ path: "/", element: <Navigate to="/dashboard" replace /> },
|
2026-06-06 03:01:07 +07:00
|
|
|
// { path: "/login", element: <LoginPage /> },
|
|
|
|
|
// { path: "/register", element: <RegisterPage /> },
|
2026-06-02 03:24:40 +07:00
|
|
|
{
|
2026-06-02 07:12:49 +00:00
|
|
|
path: "/dashboard",
|
|
|
|
|
element: (
|
2026-06-05 19:01:48 +07:00
|
|
|
<MainLayout>
|
|
|
|
|
<DashboardPage />
|
|
|
|
|
</MainLayout>
|
2026-06-02 07:12:49 +00:00
|
|
|
),
|
2026-06-02 02:42:07 +07:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: "/scan",
|
2026-05-22 16:51:01 +00:00
|
|
|
element: (
|
2026-06-05 19:01:48 +07:00
|
|
|
<MainLayout>
|
|
|
|
|
<ScanPage />
|
|
|
|
|
</MainLayout>
|
2026-06-02 02:42:07 +07:00
|
|
|
),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: "/library",
|
|
|
|
|
element: (
|
2026-06-05 19:01:48 +07:00
|
|
|
<MainLayout>
|
|
|
|
|
<LibraryPage />
|
|
|
|
|
</MainLayout>
|
2026-06-02 02:42:07 +07:00
|
|
|
),
|
|
|
|
|
},
|
2026-06-02 03:24:40 +07:00
|
|
|
{
|
|
|
|
|
path: "/diagnoses",
|
|
|
|
|
element: (
|
2026-06-05 19:01:48 +07:00
|
|
|
<MainLayout>
|
|
|
|
|
<DiagnosesPage />
|
|
|
|
|
</MainLayout>
|
2026-06-02 07:12:49 +00:00
|
|
|
),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: "/diagnoses/:id",
|
|
|
|
|
element: (
|
2026-06-05 19:01:48 +07:00
|
|
|
<MainLayout>
|
|
|
|
|
<DiagnosisDetailPage />
|
|
|
|
|
</MainLayout>
|
2026-06-02 03:24:40 +07:00
|
|
|
),
|
|
|
|
|
},
|
2026-05-22 17:11:56 +00:00
|
|
|
{
|
2026-06-02 02:42:07 +07:00
|
|
|
path: "/expert/reviews",
|
2026-06-02 07:12:49 +00:00
|
|
|
element: (
|
2026-06-06 03:01:07 +07:00
|
|
|
<MainLayout>
|
|
|
|
|
<ExpertReviewsPage />
|
|
|
|
|
</MainLayout>
|
2026-06-02 07:12:49 +00:00
|
|
|
),
|
2026-05-22 17:11:56 +00:00
|
|
|
},
|
2026-06-02 07:47:59 +00:00
|
|
|
{
|
|
|
|
|
path: "/catalog",
|
|
|
|
|
element: (
|
|
|
|
|
<MainLayout>
|
|
|
|
|
<CatalogPage />
|
|
|
|
|
</MainLayout>
|
|
|
|
|
),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: "/catalog/:slug",
|
|
|
|
|
element: (
|
|
|
|
|
<MainLayout>
|
|
|
|
|
<DiseaseDetailPage />
|
|
|
|
|
</MainLayout>
|
|
|
|
|
),
|
|
|
|
|
},
|
2026-05-22 12:41:55 +00:00
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
export function App() {
|
|
|
|
|
return (
|
|
|
|
|
<QueryClientProvider client={queryClient}>
|
2026-06-02 07:12:49 +00:00
|
|
|
<AuthInitializer />
|
2026-05-22 12:41:55 +00:00
|
|
|
<RouterProvider router={router} />
|
|
|
|
|
</QueryClientProvider>
|
|
|
|
|
);
|
|
|
|
|
}
|