Files
dashfront/src/appRouter.jsx
seb 27fd5d3e94 Add Kunde CRUD with addresses/contacts, delivery edit, and Auftrag sub-nav.
Wire customergroup/entity APIs, Lieferungen detail editing, and Angebot/Bestellung/Ausliefern/Retoure placeholders.
2026-08-06 07:38:23 +02:00

81 lines
3.5 KiB
JavaScript

import { lazy } from 'react';
import { Navigate, createBrowserRouter } from 'react-router-dom';
import AppShell from './components/AppShell';
import SectionLayout from './components/SectionLayout';
const ArtikelUebersichtPage = lazy(() => import('./pages/artikel/index'));
const ArtikelKategorienPage = lazy(() => import('./pages/artikel/kategorien'));
const RedirectArtikelKategorien = lazy(() => import('./pages/artikel/RedirectArtikelKategorien'));
const ArtikelLagerPage = lazy(() => import('./pages/artikel/lager'));
const ArtikelSkuPage = lazy(() => import('./pages/artikel/sku'));
const LieferungListePage = lazy(() => import('./pages/lieferung/index'));
const LieferungNeuPage = lazy(() => import('./pages/lieferung/neu'));
const LieferungLieferantenPage = lazy(() => import('./pages/lieferung/lieferanten'));
const LieferungEditPage = lazy(() => import('./pages/lieferung/edit'));
const AuftragAngebotPage = lazy(() => import('./pages/auftrag/index'));
const AuftragBestellungPage = lazy(() => import('./pages/auftrag/bestellung'));
const AuftragAusliefernPage = lazy(() => import('./pages/auftrag/ausliefern'));
const AuftragRetourePage = lazy(() => import('./pages/auftrag/retoure'));
const KundeListePage = lazy(() => import('./pages/kunde/index'));
const KundeNeuPage = lazy(() => import('./pages/kunde/neu'));
const KundeGruppenPage = lazy(() => import('./pages/kunde/gruppen'));
const KundeEditPage = lazy(() => import('./pages/kunde/edit'));
const InfosPage = lazy(() => import('./pages/infos/index'));
export const router = createBrowserRouter([
{
path: '/',
element: <AppShell />,
children: [
{ index: true, element: <Navigate to="/artikel" replace /> },
{
path: 'lieferung',
element: <SectionLayout sectionPath="/lieferung" />,
children: [
{ index: true, element: <LieferungListePage /> },
{ path: 'neu', element: <LieferungNeuPage /> },
{ path: 'lieferanten', element: <LieferungLieferantenPage /> },
{ path: ':deliveryId', element: <LieferungEditPage /> },
],
},
{ path: 'infos', element: <InfosPage /> },
{
path: 'kategorien/*',
element: <SectionLayout sectionPath="/artikel" />,
children: [{ path: '*', element: <ArtikelKategorienPage /> }],
},
{
path: 'artikel',
element: <SectionLayout sectionPath="/artikel" />,
children: [
{ index: true, element: <ArtikelUebersichtPage /> },
{ path: 'kategorien/*', element: <RedirectArtikelKategorien /> },
{ path: 'lager', element: <ArtikelLagerPage /> },
{ path: ':sku/:tab?', element: <ArtikelSkuPage /> },
],
},
{
path: 'auftrag',
element: <SectionLayout sectionPath="/auftrag" />,
children: [
{ index: true, element: <AuftragAngebotPage /> },
{ path: 'bestellung', element: <AuftragBestellungPage /> },
{ path: 'ausliefern', element: <AuftragAusliefernPage /> },
{ path: 'retoure', element: <AuftragRetourePage /> },
],
},
{
path: 'kunde',
element: <SectionLayout sectionPath="/kunde" />,
children: [
{ index: true, element: <KundeListePage /> },
{ path: 'neu', element: <KundeNeuPage /> },
{ path: 'gruppen', element: <KundeGruppenPage /> },
{ path: ':entityId', element: <KundeEditPage /> },
],
},
{ path: '*', element: <Navigate to="/artikel" replace /> },
],
},
]);