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 ;
}