import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import React from "react"; import ReactDOM from "react-dom/client"; import { createBrowserRouter, Navigate, RouterProvider } from "react-router-dom"; import { permissions } from "@mrp/shared"; import { AppShell } from "./components/AppShell"; import { ProtectedRoute } from "./components/ProtectedRoute"; import { AuthProvider } from "./auth/AuthProvider"; import { DashboardPage } from "./modules/dashboard/DashboardPage"; import { LoginPage } from "./modules/login/LoginPage"; import { ThemeProvider } from "./theme/ThemeProvider"; import "./index.css"; const queryClient = new QueryClient(); const CompanySettingsPage = React.lazy(() => import("./modules/settings/CompanySettingsPage").then((module) => ({ default: module.CompanySettingsPage })) ); const AdminDiagnosticsPage = React.lazy(() => import("./modules/settings/AdminDiagnosticsPage").then((module) => ({ default: module.AdminDiagnosticsPage })) ); const UserManagementPage = React.lazy(() => import("./modules/settings/UserManagementPage").then((module) => ({ default: module.UserManagementPage })) ); const CustomersPage = React.lazy(() => import("./modules/crm/CustomersPage").then((module) => ({ default: module.CustomersPage })) ); const VendorsPage = React.lazy(() => import("./modules/crm/VendorsPage").then((module) => ({ default: module.VendorsPage })) ); const CrmDetailPage = React.lazy(() => import("./modules/crm/CrmDetailPage").then((module) => ({ default: module.CrmDetailPage })) ); const CrmFormPage = React.lazy(() => import("./modules/crm/CrmFormPage").then((module) => ({ default: module.CrmFormPage })) ); const InventoryItemsPage = React.lazy(() => import("./modules/inventory/InventoryItemsPage").then((module) => ({ default: module.InventoryItemsPage })) ); const InventoryDetailPage = React.lazy(() => import("./modules/inventory/InventoryDetailPage").then((module) => ({ default: module.InventoryDetailPage })) ); const InventoryFormPage = React.lazy(() => import("./modules/inventory/InventoryFormPage").then((module) => ({ default: module.InventoryFormPage })) ); const WarehousesPage = React.lazy(() => import("./modules/inventory/WarehousesPage").then((module) => ({ default: module.WarehousesPage })) ); const WarehouseDetailPage = React.lazy(() => import("./modules/inventory/WarehouseDetailPage").then((module) => ({ default: module.WarehouseDetailPage })) ); const WarehouseFormPage = React.lazy(() => import("./modules/inventory/WarehouseFormPage").then((module) => ({ default: module.WarehouseFormPage })) ); const ProjectsPage = React.lazy(() => import("./modules/projects/ProjectsPage").then((module) => ({ default: module.ProjectsPage })) ); const ProjectDetailPage = React.lazy(() => import("./modules/projects/ProjectDetailPage").then((module) => ({ default: module.ProjectDetailPage })) ); const ProjectFormPage = React.lazy(() => import("./modules/projects/ProjectFormPage").then((module) => ({ default: module.ProjectFormPage })) ); const ManufacturingPage = React.lazy(() => import("./modules/manufacturing/ManufacturingPage").then((module) => ({ default: module.ManufacturingPage })) ); const WorkOrderDetailPage = React.lazy(() => import("./modules/manufacturing/WorkOrderDetailPage").then((module) => ({ default: module.WorkOrderDetailPage })) ); const WorkOrderFormPage = React.lazy(() => import("./modules/manufacturing/WorkOrderFormPage").then((module) => ({ default: module.WorkOrderFormPage })) ); const PurchaseListPage = React.lazy(() => import("./modules/purchasing/PurchaseListPage").then((module) => ({ default: module.PurchaseListPage })) ); const PurchaseDetailPage = React.lazy(() => import("./modules/purchasing/PurchaseDetailPage").then((module) => ({ default: module.PurchaseDetailPage })) ); const PurchaseFormPage = React.lazy(() => import("./modules/purchasing/PurchaseFormPage").then((module) => ({ default: module.PurchaseFormPage })) ); const SalesListPage = React.lazy(() => import("./modules/sales/SalesListPage").then((module) => ({ default: module.SalesListPage })) ); const SalesDetailPage = React.lazy(() => import("./modules/sales/SalesDetailPage").then((module) => ({ default: module.SalesDetailPage })) ); const SalesFormPage = React.lazy(() => import("./modules/sales/SalesFormPage").then((module) => ({ default: module.SalesFormPage })) ); const ShipmentListPage = React.lazy(() => import("./modules/shipping/ShipmentListPage").then((module) => ({ default: module.ShipmentListPage })) ); const ShipmentDetailPage = React.lazy(() => import("./modules/shipping/ShipmentDetailPage").then((module) => ({ default: module.ShipmentDetailPage })) ); const ShipmentFormPage = React.lazy(() => import("./modules/shipping/ShipmentFormPage").then((module) => ({ default: module.ShipmentFormPage })) ); const GanttPage = React.lazy(() => import("./modules/gantt/GanttPage").then((module) => ({ default: module.GanttPage })) ); function RouteFallback() { return (