Files
stockfill/src/App.tsx
T
beatzaplenty d6b784ad11 Moved to lazy loading modules and configured build chunking
modified:   package-lock.json
	modified:   package.json
	modified:   src/App.tsx
	modified:   src/screens/ActivePickListScreen.test.tsx
	modified:   src/screens/ActivePickListScreen.tsx
	modified:   src/screens/BarcodeScannerScreen.tsx
	modified:   src/screens/HomeScreen.tsx
	modified:   src/screens/ImportExportScreen.tsx
	modified:   src/screens/ManageAreasScreen.test.tsx
	modified:   src/screens/ManageAreasScreen.tsx
	modified:   src/screens/ManageCategoriesScreen.test.tsx
	modified:   src/screens/ManageCategoriesScreen.tsx
	modified:   src/screens/ManageProductsScreen.test.tsx
	modified:   src/screens/ManageProductsScreen.tsx
	modified:   src/screens/PickListsScreen.test.tsx
	modified:   src/screens/PickListsScreen.tsx
	modified:   src/screens/StartPickListScreen.test.tsx
	modified:   src/screens/StartPickListScreen.tsx
	modified:   tsconfig.json
	modified:   vite.config.ts
2025-11-26 09:34:18 +10:00

58 lines
2.2 KiB
TypeScript

import { CssBaseline, ThemeProvider, createTheme } from '@mui/material';
import { BrowserRouter, Route, Routes } from 'react-router-dom';
import { DBProvider } from './context/DBProvider';
import { AppLayout } from './components/AppLayout';
import React, { Suspense, lazy } from 'react';
import { useServiceWorker } from './hooks/useServiceWorker';
const HomeScreen = lazy(() => import('./screens/HomeScreen'));
const StartPickListScreen = lazy(() => import('./screens/StartPickListScreen'));
const PickListsScreen = lazy(() => import('./screens/PickListsScreen'));
const ActivePickListScreen = lazy(() => import('./screens/ActivePickListScreen'));
const ManageProductsScreen = lazy(() => import('./screens/ManageProductsScreen'));
const ManageAreasScreen = lazy(() => import('./screens/ManageAreasScreen'));
const ManageCategoriesScreen = lazy(() => import('./screens/ManageCategoriesScreen'));
const BarcodeScannerScreen = lazy(() => import('./screens/BarcodeScannerScreen'));
const ImportExportScreen = lazy(() => import('./screens/ImportExportScreen'));
const theme = createTheme({
palette: {
mode: 'light',
primary: {
main: '#0d6efd',
},
},
});
const AppRoutes = () => {
useServiceWorker();
return (
<Suspense fallback={<div>Loading…</div>}>
<Routes>
<Route element={<AppLayout />}>
<Route path="/" element={<HomeScreen />} />
<Route path="/start" element={<StartPickListScreen />} />
<Route path="/pick-lists" element={<PickListsScreen />} />
<Route path="/pick-lists/:id" element={<ActivePickListScreen />} />
<Route path="/products" element={<ManageProductsScreen />} />
<Route path="/categories" element={<ManageCategoriesScreen />} />
<Route path="/areas" element={<ManageAreasScreen />} />
<Route path="/scan" element={<BarcodeScannerScreen />} />
<Route path="/data" element={<ImportExportScreen />} />
</Route>
</Routes>
</Suspense>
);
};
export const App = () => (
<ThemeProvider theme={theme}>
<CssBaseline />
<BrowserRouter>
<DBProvider>
<AppRoutes />
</DBProvider>
</BrowserRouter>
</ThemeProvider>
);