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 AuftragVersandartenPage from './routes/auftrag/versandarten';
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: '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: '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: },
],
},
{ 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;
}