Repository navigation
[Refactor] Blazor Blueprint app shell and Blazor Web App hosting - #56
Merged
Merged
Conversation
- Move from _Host.cshtml to the Blazor Web App model: App.razor is the host page, Routes.razor the router, InteractiveServer render mode. - Replace the Radzen layout and the BlazorStrap off-canvas menu with a Blazor Blueprint sidebar, a header with About, GitHub and a light/dark toggle, and a theme in wwwroot/css/theme.css. - Remove BlazorStrap.V5. Pages still use Radzen and the Bootstrap grid; a bridge section in app.css maps the Radzen theme onto the Blueprint theme so they follow light and dark mode until they are migrated. - Import Blazor Blueprint per folder (Shared/_Imports.razor), because Radzen and Blueprint define types with the same names. - SideMenu unsubscribes from ReqIfChanged on dispose and re-renders on the renderer's thread. - Fix launchSettings.json: dotnetRunMessages must be a boolean, otherwise dotnet run ignores the profile and runs outside Development. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Unknown addresses show a "Page not found" page inside the app with a 404 status, instead of an empty 404 (UseStatusCodePagesWithReExecute and the Router's NotFoundPage). - The sidebar uses CreateUrl() for specification links and a new ExtractDisplayText() for their names, following the display-name order of ExtractDisplayName() as plain text. - "Open a file" is highlighted on the home page; an empty Href never counted as active, so the home links now use "/". - The GitHub link keeps rel="noopener noreferrer" from BbButton. - The sidebar drawer closes after navigating on small screens. - Tests for SideMenu, MainLayout, ExtractDisplayText and the hosting (host page, stylesheet order, not-found page): 24 new tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
This was referenced Oct 18, 2026
This was referenced Oct 18, 2026
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.



Prerequisites
Description
First step of revamping the viewer UI with Blazor Blueprint. This PR replaces the app shell only; the pages keep their Radzen components and are migrated in follow-up PRs.
Hosting
_Host.cshtmlto the Blazor Web App model:App.razoris the host page,Routes.razorthe router, and the app runs with theInteractiveServerrender mode (MapRazorComponents/MapStaticAssets).Shell
MainLayoutbuilt onBbSidebarProvider: a sticky header with the sidebar toggle, About, GitHub and a light/dark toggle (BbDarkModeToggle; the choice is saved in local storage and applied before the first paint).SideMenuis now aBbSidebar: one group per loaded ReqIF document with Statistics, a foldable Specifications list, Spec Objects, Spec Relations, Relation Matrix, External Objects and a foldable Types group. It collapses to an icon rail. Version and copyright moved from the footer bar to the sidebar footer.SideMenunow unsubscribes fromReqIfChangedon dispose and re-renders throughInvokeAsync.wwwroot/css/theme.css(light and dark CSS variables, blue primary colour).Transition
DialogService,ButtonSize), so Blueprint is imported per folder viaShared/_Imports.razor.app.cssundoes the collisions and maps the Radzen theme variables onto the Blueprint theme, so the existing pages already follow light and dark mode. It goes away once the pages are migrated..razor.cssfiles.Also fixed
launchSettings.json:dotnetRunMessageswas the string"true", sodotnet runignored the whole profile, ran outside Development and returned 500 for_content/and_framework/assets.Testing
dotnet buildclean; the 17 existing tests pass. No new tests: the change is layout and styling;SideMenuwould be a good candidate for a bUnit test in the next PR.ProR_Traceability-Template-v1.0.reqif: loading a file, sidebar navigation to Statistics, a specification, Spec Objects and Data Types, folding Types, light/dark switching (including the Radzen grids), and collapsing the sidebar to the icon rail../docker-build-local.sh).Next steps
BbFileUpload) and a "try a sample file" button.BbCommand), breadcrumbs, charts on the statistics page.🤖 Generated with Claude Code