Fix manifest list create/edit navigation after Vite HMR.

Keep a single browser router across hot reloads and drive ManifestList/Form via withNavigate instead of a stale router.navigate singleton.
This commit is contained in:
seb
2026-08-06 22:47:51 +02:00
parent 4896b1dc36
commit 628980dc49
3 changed files with 38 additions and 18 deletions

View File

@@ -26,7 +26,7 @@ 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([
const routes = [
{
path: '/',
element: <AppShell />,
@@ -64,14 +64,9 @@ export const router = createBrowserRouter([
children: [
{ index: true, element: <AuftragAngebotPage /> },
{ path: 'neu', element: <AuftragAngebotNeuPage /> },
{
path: 'bestellung',
children: [
{ index: true, element: <AuftragBestellungPage /> },
{ path: 'neu', element: <AuftragBestellungNeuPage /> },
{ path: ':orderId', element: <AuftragBestellungEditPage /> },
],
},
{ path: 'bestellung', element: <AuftragBestellungPage /> },
{ path: 'bestellung/neu', element: <AuftragBestellungNeuPage /> },
{ path: 'bestellung/:orderId', element: <AuftragBestellungEditPage /> },
{ path: 'ausliefern', element: <AuftragAusliefernPage /> },
{ path: 'retoure', element: <AuftragRetourePage /> },
{ path: ':quoteId', element: <AuftragAngebotEditPage /> },
@@ -90,4 +85,12 @@ export const router = createBrowserRouter([
{ path: '*', element: <Navigate to="/artikel" replace /> },
],
},
]);
];
/** 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;
}