import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { createBrowserRouter, RouterProvider, Navigate, } from "react-router-dom"; import { AuthInitializer } from "@/components/auth-initializer"; import { AuthGuard } from "@/components/auth-guard"; 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"; import { DiagnosesPage } from "@/pages/diagnoses-page"; import { TelemetryPage } from "@/pages/telemetry-page"; import { LoginPage } from "@/pages/login-page"; import { RegisterPage } from "@/pages/register-page"; import { MainLayout } from "@/components/layout/main-layout"; import { useEffect } from "react"; import { useAuthStore } from "@/store/auth-store"; import { apiClient } from "@/lib/api-client"; function LogoutProses() { const setUser = useAuthStore((state) => state.setUser); useEffect(() => { apiClient.logout().then(() => { setUser(null); }).catch((error) => { console.error("Oops, gagal logout dari server:", error); setUser(null); }); }, [setUser]); return ; } import { trackPageView } from "./lib/telemetry"; const queryClient = new QueryClient(); const router = createBrowserRouter([ { path: "/", element: }, { path: "/login", element: }, { path: "/register", element: }, { path: "/dashboard", element: ( ), }, { path: "/scan", element: ( ), }, { path: "/library", element: ( ), }, { path: "/diagnoses", element: ( ), }, { path: "/diagnoses/:id", element: ( ), }, { path: "/expert/reviews", element: ( ), }, { path: "/catalog", element: ( ), }, { path: "/catalog/:slug", element: ( ), }, { path: "/logout", element: ( ), }, { path: "/telemetry", element: ( ), }, ]); function PageViewTracker() { const location = window.location; useEffect(() => { trackPageView(location.pathname + location.search); }, [location.pathname, location.search]); return null; } export function App() { return ( ); }