import { useNavigate, useLocation, Routes, Route, Navigate, } from "react-router-dom"; import { DashboardLayout, type SidebarItem } from "@edr/ui-common"; import { LayoutDashboard, Users, CalendarCheck, Package, MapPin, Train, Receipt, FileText, Settings, UserCircle, FileUp, MapPinned, } from "lucide-react"; import BookingsPage from "./pages/bookings/BookingsPage"; import BookingDetailPage from "./pages/bookings/BookingDetailPage"; import NewBookingPage from "./pages/bookings/NewBookingPage"; import ConsignmentsPage from "./pages/consignments/ConsignmentsPage"; import ConsignmentDetailPage from "./pages/consignments/ConsignmentDetailPage"; import TrackingPage from "./pages/tracking/TrackingPage"; import BillingPage from "./pages/billing/BillingPage"; import TrainsPage from "./pages/trains/TrainsPage"; import DashboardPage from "./pages/dashboard/DashboardPage"; import { IamLoginPage, LoadingScreen, useAuth, useAuthUser, } from "@tria-plc/iamui-common"; import CustomersPage from "./pages/customers/CustomersPage"; import CustomerDetailPage from "./pages/customers/CustomerDetailPage"; import NewCustomerPage from "./pages/customers/NewCustomerPage"; import DocumentsPage from "./pages/documents/DocumentsPage"; import DropdownSettingsPage from "./pages/admin/DropdownSettingsPage"; import FileUploadSettingsPage from "./pages/admin/FileUploadSettingsPage"; import MyPortalPage from "./pages/portal/MyPortalPage"; import Station from "./components/stations/Station"; const sidebarItems: SidebarItem[] = [ { label: "My Portal", href: "/portal", icon: }, { label: "Dashboard", href: "/", icon: }, { label: "Customers", href: "/customers", icon: }, { label: "Bookings", href: "/bookings", icon: }, { label: "Consignments", href: "/consignments", icon: }, { label: "Tracking", href: "/tracking", icon: }, { label: "Stations", href: "/stations", icon: }, { label: "Trains", href: "/trains", icon: }, { label: "Billing", href: "/billing", icon: }, { label: "Documents", href: "/documents", icon: }, { label: "Dropdown Settings", href: "/admin/dropdowns", icon: }, { label: "File Upload Settings", href: "/admin/file-uploads", icon: , }, ]; const App = () => { const navigate = useNavigate(); const location = useLocation(); const { user, loading } = useAuth(); const { logout } = useAuthUser(); if (loading) { return ; } if (!user) { return ( } /> } /> ); } const displayName = user?.name?.en || user?.username || user?.email || "User"; const userEmail = user?.email; const handleLogout = () => { logout(); [ "auth-token", "refresh-token", "auth-user", "current-position-id", "selected-position-id", ].forEach((name) => { document.cookie = `${name}=; Max-Age=0; path=/`; }); localStorage.clear(); window.location.replace("/auth"); }; return ( } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); }; export default App;