From 66dec8cf61cf3512d42d2bee8ad02445508477a4 Mon Sep 17 00:00:00 2001 From: Debian Date: Tue, 2 Jun 2026 21:03:23 +0200 Subject: [PATCH] =?UTF-8?q?fix(ui):=20ErrorBoundary=20bei=20Navigation=20r?= =?UTF-8?q?esetten=20=E2=80=94=20v1.2.70?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ErrorBoundary lag in main.tsx außerhalb des Routers und hatte keinen Zugriff auf useLocation. Einmal gecatchter Fehler blieb erhalten bis zum nächsten Reload — daher "EdgeGuard konnte nicht laden" bei Navigation zum Dashboard. Fix: LocationKeyBoundary-Wrapper innerhalb des BrowserRouter mit key={pathname} — React remountet die ErrorBoundary bei jedem Routenwechsel und löscht damit den Error-State automatisch. Co-Authored-By: Claude Sonnet 4.6 --- VERSION | 2 +- management-ui/src/App.tsx | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/VERSION b/VERSION index f2254f4..daba2a9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.2.69 +1.2.70 diff --git a/management-ui/src/App.tsx b/management-ui/src/App.tsx index f6d5b7e..7e2548f 100644 --- a/management-ui/src/App.tsx +++ b/management-ui/src/App.tsx @@ -1,5 +1,6 @@ import { Suspense, lazy, useEffect, type ReactNode } from 'react' import { BrowserRouter, Navigate, Route, Routes, useLocation } from 'react-router-dom' +import ErrorBoundary from './components/ErrorBoundary' import { ConfigProvider, Spin } from 'antd' import deDE from 'antd/locale/de_DE' import enUS from 'antd/locale/en_US' @@ -110,6 +111,7 @@ export default function App() { + }> useAuthStore.getState().set(u)} />} /> @@ -148,9 +150,17 @@ export default function App() { } /> + ) } + +// Resets the ErrorBoundary on every route change so a render error on +// one page never permanently blocks navigation to another page. +function LocationKeyBoundary({ children }: { children: ReactNode }) { + const { pathname } = useLocation() + return {children} +}