import { lazy } from 'react'; import { Navigate, createBrowserRouter } from 'react-router-dom'; import AppShell from './components/AppShell'; import SectionLayout from './components/SectionLayout'; import ArtikelUebersichtPage from './routes/artikel'; import ArtikelKategorienPage from './routes/artikel/kategorien'; import RedirectArtikelKategorien from './routes/artikel/RedirectArtikelKategorien'; import ArtikelLagerPage from './routes/artikel/lager'; import ArtikelMarkenPage from './routes/artikel/marken'; import ArtikelVorlagenPage from './routes/artikel/vorlagen'; import ArtikelMerkmalePage from './routes/artikel/merkmale'; import ArtikelSkuPage from './routes/artikel/_sku'; import LieferungListePage from './routes/lieferung'; import LieferungNeuPage from './routes/lieferung/neu'; import LieferungLieferantenPage from './routes/lieferung/lieferanten'; import LieferungEditPage from './routes/lieferung/_deliveryId'; import AuftragAngebotPage from './routes/auftrag'; import AuftragAngebotNeuPage from './routes/auftrag/neuesangebot'; import AuftragAngebotEditPage from './routes/auftrag/_quoteId'; import AuftragBestellungPage from './routes/auftrag/bestellung'; import AuftragBestellungNeuPage from './routes/auftrag/bestellung/neu'; import AuftragBestellungEditPage from './routes/auftrag/bestellung/_orderId'; import AuftragAusliefernPage from './routes/auftrag/ausliefern'; import AuftragZahlungenPage from './routes/auftrag/zahlungen'; import AuftragLieferartenPage from './routes/auftrag/lieferarten'; import KundeListePage from './routes/kunde'; import KundeNeuPage from './routes/kunde/neu'; import KundeGruppenPage from './routes/kunde/gruppen'; import KundeEditPage from './routes/kunde/_entityId'; import StatisticsPage from './routes/infos/StatisticsPage'; import OAuthAuthorizePage from './routes/oauth/OAuthAuthorizePage'; const ArticleHistoryPage = lazy(() => import('./routes/infos/ArticleHistoryPage')); const GlobalHistoryPage = lazy(() => import('./routes/infos/GlobalHistoryPage')); const LedgerHistoryPage = lazy(() => import('./routes/infos/LedgerHistoryPage')); 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: 'neuesangebot', element: }, { path: 'neu', element: }, { path: 'bestellung', element: }, { path: 'bestellung/neu', element: }, { path: 'bestellung/:orderId', element: }, { path: 'ausliefern', element: }, { path: 'zahlungen', element: }, { path: 'lieferarten', element: }, { path: ':quoteId', element: }, ], }, { path: 'kunde', element: , children: [ { index: true, element: }, { path: 'neu', element: }, { path: 'gruppen', element: }, { path: ':entityId', 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; }