Files
glass/src/App.jsx
T
houseassassin 8dae7f5d3b feat: add Clients page with order history
Groups orders by phone into a client list with expandable rows showing per-order history, summary cards for total clients and closed revenue, and a Clients nav item in the sidebar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 16:26:50 +03:00

66 lines
2.7 KiB
React

import React from 'react';
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import Navbar from './components/Navbar';
import Hero from './components/Hero';
import PhysicsOfSafety from './components/PhysicsOfSafety';
import UseCases from './components/UseCases';
import Estimator from './components/Estimator';
import TrustBar from './components/TrustBar';
import Comparison from './components/Comparison';
import LeadForm from './components/LeadForm';
import Footer from './components/Footer';
const LoginPage = React.lazy(() => import('./admin/auth/LoginPage'));
const ProtectedRoute = React.lazy(() => import('./admin/auth/ProtectedRoute'));
const AdminLayout = React.lazy(() => import('./admin/layout/AdminLayout'));
const KanbanBoard = React.lazy(() => import('./admin/orders/KanbanBoard'));
const AnalyticsDashboard = React.lazy(() => import('./admin/analytics/AnalyticsDashboard'));
const CompletedOrdersTable = React.lazy(() => import('./admin/analytics/CompletedOrdersTable'));
const UserManagementPage = React.lazy(() => import('./admin/users/UserManagementPage'));
const SettingsPage = React.lazy(() => import('./admin/settings/SettingsPage'));
const ClientsPage = React.lazy(() => import('./admin/clients/ClientsPage'));
function PublicSite() {
return (
<div style={{ minHeight: '100vh', display: 'flex', flexDirection: 'column' }}>
<Navbar />
<main style={{ flex: '1' }}>
<Hero />
<PhysicsOfSafety />
<UseCases />
<TrustBar />
<Comparison />
<Estimator />
<LeadForm />
</main>
<Footer />
</div>
);
}
function App() {
return (
<BrowserRouter>
<React.Suspense fallback={<div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100vh', fontFamily: 'sans-serif', color: '#475569' }}>Загрузка...</div>}>
<Routes>
<Route path="/" element={<PublicSite />} />
<Route path="/admin/login" element={<LoginPage />} />
<Route path="/admin" element={<Navigate to="/admin/kanban" replace />} />
<Route path="/admin/*" element={<ProtectedRoute />}>
<Route element={<AdminLayout />}>
<Route path="kanban" element={<KanbanBoard />} />
<Route path="analytics" element={<AnalyticsDashboard />} />
<Route path="completed" element={<CompletedOrdersTable />} />
<Route path="users" element={<UserManagementPage />} />
<Route path="settings" element={<SettingsPage />} />
<Route path="clients" element={<ClientsPage />} />
</Route>
</Route>
</Routes>
</React.Suspense>
</BrowserRouter>
);
}
export default App;