fix: map nav links must full-navigate so atlas↔diorama switching works (couldn't reach Cesium)#334
Merged
Merged
Conversation
…ldn't reach Cesium) The two map nav entries share one route (/chatt) and differ only by ?diorama. TwinCanvasHost picks the renderer (Cesium atlas vs Three.js diorama) from window.location.search at MOUNT and is not reactive, so a client-side Link nav between /chatt and /chatt?diorama kept the current renderer — once on the diorama you could never switch to the atlas (regression from the two-map nav in #49/#333). Render the Atlas/Diorama entries as plain <a> (full navigation, via getInternalUrl for the basePath) so the query is re-read on a fresh mount; a new WebGL context per heavy map is a bonus. Other nav items stay client Links. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Regression from #333. The Atlas and Diorama nav entries share one route (
/chatt, differing only by?diorama), butTwinCanvasHostselects the renderer fromwindow.location.searchat MOUNT and isn't reactive — so a client-side Link nav between them kept the current renderer. Once on the diorama you could never switch to the Cesium atlas.Fix: render the two map nav entries as plain
<a>(full navigation, basePath viagetInternalUrl) so the query is re-read on a fresh mount; other nav items stay client Links. A fresh WebGL context per heavy map is a bonus.Verified locally: from
/chatt?diorama, clicking Atlas loads the Cesium globe ("Atlas — chatt, 13877 buildings"); nav order is Diorama-then-Atlas. type-check + lint green.(Separate observation: the reported "Diorama still under Atlas" was a stale service worker serving the pre-#333 build — the deployed code already had the correct order.)