import { lazy } from 'react'; import { Navigate, RouterProvider, createBrowserRouter } from 'react-router-dom'; import AppShell from './components/AppShell'; import SectionLayout from './components/SectionLayout'; const ArtikelUebersichtPage = lazy(() => import('./routes/artikel')); const ArtikelKategorienPage = lazy(() => import('./routes/artikel/kategorien')); const RedirectArtikelKategorien = lazy(() => import('./routes/artikel/RedirectArtikelKategorien')); const ArtikelLagerPage = lazy(() => import('./routes/artikel/lager')); const ArtikelMarkenPage = lazy(() => import('./routes/artikel/marken')); const ArtikelVorlagenPage = lazy(() => import('./routes/artikel/vorlagen')); const ArtikelMerkmalePage = lazy(() => import('./routes/artikel/merkmale')); const ArtikelSkuPage = lazy(() => import('./routes/artikel/_sku')); const LieferungListePage = lazy(() => import('./routes/lieferung')); const LieferungNeuPage = lazy(() => import('./routes/lieferung/neu')); const LieferungLieferantenPage = lazy(() => import('./routes/lieferung/lieferanten')); const LieferungEditPage = lazy(() => import('./routes/lieferung/_deliveryId')); const AuftragAngebotPage = lazy(() => import('./routes/auftrag')); const AuftragAngebotNeuPage = lazy(() => import('./routes/auftrag/neuesangebot')); const AuftragAngebotEditPage = lazy(() => import('./routes/auftrag/_quoteId')); const AuftragBestellungPage = lazy(() => import('./routes/auftrag/bestellung')); const AuftragBestellungNeuPage = lazy(() => import('./routes/auftrag/bestellung/neu')); const AuftragBestellungEditPage = lazy(() => import('./routes/auftrag/bestellung/_orderId')); const AuftragAusliefernPage = lazy(() => import('./routes/auftrag/ausliefern')); const AuftragRetourePage = lazy(() => import('./routes/auftrag/retoure')); const AuftragRetoureNeuPage = lazy(() => import('./routes/auftrag/retoure/neu')); const AuftragRetoureEditPage = lazy(() => import('./routes/auftrag/retoure/_retoureId')); const AuftragZahlungenPage = lazy(() => import('./routes/auftrag/zahlungen')); const AuftragVersandartenPage = lazy(() => import('./routes/auftrag/versandarten')); const KundeListePage = lazy(() => import('./routes/kunde')); const KundeNeuPage = lazy(() => import('./routes/kunde/neu')); const KundeGruppenPage = lazy(() => import('./routes/kunde/gruppen')); const KundeEditPage = lazy(() => import('./routes/kunde/_entityId')); const StatisticsPage = lazy(() => import('./routes/infos/StatisticsPage')); const OAuthAuthorizePage = lazy(() => import('./routes/oauth/OAuthAuthorizePage')); const ArticleHistoryPage = lazy(() => import('./routes/infos/ArticleHistoryPage')); const GlobalHistoryPage = lazy(() => import('./routes/infos/GlobalHistoryPage')); const LedgerHistoryPage = lazy(() => import('./routes/infos/LedgerHistoryPage')); const CompanyAutomatDebugPage = import.meta.env.DEV ? lazy(() => import('./routes/debug/CompanyAutomatPage')) : null; function LoginRedirect() { const params = new URLSearchParams(window.location.search); const returnTo = params.get('returnTo'); return ; } const routes = [ { path: '/oauth/authorize', element: , }, { path: '/login', element: , }, { path: '/', element: , children: [ { index: true, element: }, { path: 'lieferung', element: , children: [ { index: true, element: }, { path: 'neu', element: }, { path: 'lieferanten', element: }, { path: ':deliveryId', element: }, ], }, { path: 'infos', element: , children: [ { index: true, element: }, { path: 'articlehistory', element: }, { path: 'globalhistory', element: }, { path: 'ledgerhistory', element: }, { path: 'statistics', element: }, ], }, { path: 'kategorien/*', element: , children: [{ path: '*', element: }], }, { path: 'artikel', element: , children: [ { index: true, element: }, { path: 'kategorien/*', element: }, { path: 'lager', element: }, { path: 'marken', element: }, { path: 'vorlagen', element: }, { path: 'merkmale', element: }, { path: ':sku/:tab?', element: }, ], }, { path: 'auftrag', element: , children: [ { index: true, element: }, { path: 'angebot', element: }, { path: 'angebot/:quoteId', element: }, { path: 'neuesangebot', element: }, { path: 'angebot/neu', element: }, { path: 'neu', element: }, { path: 'bestellung', element: }, { path: 'bestellung/neu', element: }, { path: 'bestellung/:orderId', element: }, { path: 'ausliefern', element: }, { path: 'retoure', element: }, { path: 'retoure/neu', element: }, { path: 'retoure/:retoureId', element: }, { path: 'zahlungen', element: }, { path: 'versandarten', element: }, { path: 'lieferarten', element: }, { path: ':quoteId', element: }, ], }, { path: 'kunde', element: , children: [ { index: true, element: }, { path: 'neu', element: }, { path: 'gruppen', element: }, { path: ':entityId', element: }, ], }, ...(import.meta.env.DEV ? [ { path: 'debug', element: , children: [ { index: true, element: }, { path: 'company', element: }, { path: 'companyautomat', element: }, ], }, ] : []), { path: '*', element: }, ], }, ]; /** Keep one router across Vite HMR — recreating breaks navigate()/Link mid-session. */ export const router = import.meta.hot?.data?.router ?? createBrowserRouter(routes); if (import.meta.hot) { import.meta.hot.data.router = router; } export default function AppRouter() { return ; }