import { BrowserRouter, Routes, Route, Navigate, useLocation } from 'react-router-dom' import { useAuthStore, isPrivileged as checkIsPrivileged } from './store/auth' import { WebSocketProvider } from './contexts/WebSocketContext' import Layout from './components/layout/Layout' import LoginPage from './pages/Login' import NotFoundPage from './pages/NotFound' import DashboardPage from './pages/Dashboard' import OrdersPage from './pages/Orders' import OrderDetailPage from './pages/OrderDetail' import NewOrderPage from './pages/NewOrder' import UploadPage from './pages/Upload' import AdminPage from './pages/Admin' import CadPreviewPage from './pages/CadPreview' import MaterialsPage from './pages/Materials' import WorkerActivityPage from './pages/WorkerActivity' import ProductLibraryPage from './pages/ProductLibrary' import ProductDetailPage from './pages/ProductDetail' import NewProductOrderPage from './pages/NewProductOrder' import NotificationsPage from './pages/Notifications' import NotificationSettingsPage from './pages/NotificationSettings' import PreferencesPage from './pages/Preferences' import TenantsPage from './pages/Tenants' import WorkflowEditorPage from './pages/WorkflowEditor' import MediaBrowserPage from './pages/MediaBrowser' import BillingPage from './pages/Billing' import WorkerManagementPage from './pages/WorkerManagement' import AssetLibraryPage from './pages/AssetLibrary' function ProtectedRoute({ children }: { children: React.ReactNode }) { const token = useAuthStore((s) => s.token) const location = useLocation() if (!token) return return <>{children} } function AdminRoute({ children }: { children: React.ReactNode }) { const { token, user } = useAuthStore() if (!token) return if (!checkIsPrivileged(user)) return return <>{children} } export default function App() { return ( } /> } > } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ) }