diff --git a/apps/server/src/client/App.tsx b/apps/server/src/client/App.tsx index 85c027f..cbf31c1 100644 --- a/apps/server/src/client/App.tsx +++ b/apps/server/src/client/App.tsx @@ -1,4 +1,4 @@ -import { BrowserRouter, Route, Routes } from "react-router-dom" +import { BrowserRouter, Navigate, Route, Routes, useLocation } from "react-router-dom" import ContainerDetailPage from "@/client/pages/container-detail" import DashboardPage from "@/client/pages/dashboard" import EventDetailPage from "@/client/pages/event-detail" @@ -26,9 +26,10 @@ function App() { } /> } /> } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> } /> @@ -37,4 +38,11 @@ function App() { ) } +// Redirect legacy /containers/* URLs (bookmarks, shared links) to /runs/*. +function ContainersRedirect() { + const location = useLocation() + const target = location.pathname.replace(/^\/containers/, "/runs") + return +} + export default App diff --git a/apps/server/src/client/pages/container-detail.test.ts b/apps/server/src/client/pages/container-detail.test.ts index eca7ebf..6949020 100644 --- a/apps/server/src/client/pages/container-detail.test.ts +++ b/apps/server/src/client/pages/container-detail.test.ts @@ -28,7 +28,7 @@ function renderRun(messages: SessionMessage[], extra: Partial() const [searchParams] = useSearchParams() - // Prefer the query-param form (/containers/detail?key=...) which is refresh-safe; - // the path-param form (/containers/:entityKey) breaks on reload because the + // Prefer the query-param form (/runs/detail?key=...) which is refresh-safe; + // the path-param form (/runs/:entityKey) breaks on reload because the // encoded slash (%2F) in the entity key isn't matched by SPA asset fallback. const entityKey = searchParams.get("key") ?? (rawKey ? decodeURIComponent(rawKey) : "") const navigate = useNavigate() @@ -909,7 +909,7 @@ export default function ContainerDetailPage() { onSuccess: () => { toast.success("Container destroyed") setDestroyOpen(false) - navigate("/containers") + navigate("/runs") }, onError: () => toast.error("Failed to destroy container"), }) @@ -1032,7 +1032,7 @@ export default function ContainerDetailPage() { return (
- @@ -1105,7 +1105,7 @@ export default function ContainerDetailPage() {
- diff --git a/apps/server/src/client/pages/event-detail.tsx b/apps/server/src/client/pages/event-detail.tsx index 265af00..94ab680 100644 --- a/apps/server/src/client/pages/event-detail.tsx +++ b/apps/server/src/client/pages/event-detail.tsx @@ -116,7 +116,7 @@ export default function EventDetailPage() {