diff --git a/apps/control-station/src/App.tsx b/apps/control-station/src/App.tsx index de9e409..8362ca2 100644 --- a/apps/control-station/src/App.tsx +++ b/apps/control-station/src/App.tsx @@ -152,6 +152,7 @@ export default function App() { contentExpanded: true, }); + const [navigationRevision, setNavigationRevision] = useState(0); const [activeRoot, setActiveRoot] = useState( polygonDatasetRoute.active ? "data" : null, ); @@ -457,6 +458,17 @@ export default function App() { workspace.openView(viewId); }; + // Explicit menu navigation always returns to that workspace's entry screen. + const openNavigationView = (viewId: string) => { + if (!workspaceById(viewId)) return; + setNavigationRevision(value => value + 1); + sessionOverview.close(); + setSourceWindowOpen(false); + setDisplayWindowOpen(false); + setLayerInspectorOpen(false); + openView(viewId); + }; + const openSource = () => { if (!sceneWorkspaceActive) return; setSourceDraft(sourceUrl); @@ -729,6 +741,7 @@ export default function App() { openNavigationView("modules")} onClose={workspace.closeNavigation} /> ) : currentRoot ? ( @@ -755,7 +768,7 @@ export default function App() { icon: , }))} activeId={workspace.activeView ?? undefined} - onItemChange={openView} + onItemChange={openNavigationView} footer={ <>