| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { BrowserRouter, Routes, Route } from 'react-router-dom';
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
- import { Layout } from './components/Layout';
- import { PrintersPage } from './pages/PrintersPage';
- import { ArchivesPage } from './pages/ArchivesPage';
- import { QueuePage } from './pages/QueuePage';
- import { StatsPage } from './pages/StatsPage';
- import { SettingsPage } from './pages/SettingsPage';
- import { ProfilesPage } from './pages/ProfilesPage';
- import { MaintenancePage } from './pages/MaintenancePage';
- import { useWebSocket } from './hooks/useWebSocket';
- import { ThemeProvider } from './contexts/ThemeContext';
- import { ToastProvider } from './contexts/ToastContext';
- const queryClient = new QueryClient({
- defaultOptions: {
- queries: {
- staleTime: 1000 * 60,
- retry: 1,
- },
- },
- });
- function WebSocketProvider({ children }: { children: React.ReactNode }) {
- useWebSocket();
- return <>{children}</>;
- }
- function App() {
- return (
- <ThemeProvider>
- <ToastProvider>
- <QueryClientProvider client={queryClient}>
- <WebSocketProvider>
- <BrowserRouter>
- <Routes>
- <Route path="/" element={<Layout />}>
- <Route index element={<PrintersPage />} />
- <Route path="archives" element={<ArchivesPage />} />
- <Route path="queue" element={<QueuePage />} />
- <Route path="stats" element={<StatsPage />} />
- <Route path="profiles" element={<ProfilesPage />} />
- <Route path="maintenance" element={<MaintenancePage />} />
- <Route path="settings" element={<SettingsPage />} />
- </Route>
- </Routes>
- </BrowserRouter>
- </WebSocketProvider>
- </QueryClientProvider>
- </ToastProvider>
- </ThemeProvider>
- );
- }
- export default App;
|