From 374ac9abe33f7d74abe0824645b7ec38a51ba2c2 Mon Sep 17 00:00:00 2001 From: Jonathan McCaffrey Date: Tue, 29 Sep 2026 14:10:34 +0000 Subject: [PATCH] AI: Central SiteMap controls released vs in-development pages - New SiteMap registry: single source of truth for page visibility. Fail-closed: unlisted or Released=false pages are hidden. - NavMenu renders nav links from SiteMap.NavEntries (galaxy only). - New Components/ReleaseGuard wraps the Router's Found template: unreleased routes redirect to /galaxy (covers direct URLs). - Galaxy map released; system/mastery detail dossiers released but not in nav (linked from the map); Home, indexes, Units hidden. - Brand logo now links to /galaxy. --- .../Components/ReleaseGuard.razor | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 ZeroSpace/ZeroSpace.Web/Components/ReleaseGuard.razor diff --git a/ZeroSpace/ZeroSpace.Web/Components/ReleaseGuard.razor b/ZeroSpace/ZeroSpace.Web/Components/ReleaseGuard.razor new file mode 100644 index 0000000..1c08d74 --- /dev/null +++ b/ZeroSpace/ZeroSpace.Web/Components/ReleaseGuard.razor @@ -0,0 +1,23 @@ +@inject NavigationManager Navigation + +@* Route guard: unreleased pages (see SiteMap) bounce to the galaxy map. *@ +@if (_released) +{ + +} + +@code { + [Parameter, EditorRequired] + public RouteData RouteData { get; set; } = default!; + + private bool _released; + + protected override void OnInitialized() + { + _released = SiteMap.IsReleased(RouteData.PageType); + if (!_released) + { + Navigation.NavigateTo("/galaxy", replace: true); + } + } +}