import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'
import { useAuthStore } from './store/auth'
import { WebSocketProvider } from './contexts/WebSocketContext'
import Layout from './components/layout/Layout'
import LoginPage from './pages/Login'
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)
if (!token) return
return <>{children}>
}
function AdminRoute({ children }: { children: React.ReactNode }) {
const { token, user } = useAuthStore()
if (!token) return
if (user?.role !== 'admin' && user?.role !== 'project_manager') return
return <>{children}>
}
export default function App() {
return (
} />
}
>
} />
} />
} />
} />
} />
} />
}
/>
}
/>
}
/>
} />
} />
} />
} />
} />
} />
} />
} />
}
/>
}
/>
}
/>
}
/>
)
}