feat: add InertiaLayoutDataMiddleware for React layout shared data#74
Merged
antosubash merged 13 commits intomainfrom Apr 5, 2026
Merged
feat: add InertiaLayoutDataMiddleware for React layout shared data#74antosubash merged 13 commits intomainfrom
antosubash merged 13 commits intomainfrom
Conversation
Populates InertiaSharedData with auth state, menu items, public menu, and CSRF token on every request so React layouts can read them from Inertia shared props.
…emodule/ui Port Blazor AppLayout/PublicLayout/UserDropdown to React components that read layout data from Inertia shared props. Integrate via resolveLayout in the ClientApp entry point for automatic layout selection based on auth state.
- Remove all Blazor/Razor references from tests, docs, CLI, Dockerfile, and Tailwind config - Delete RazorComponentExtensionsEmitterTests and ClientsActionEndpoint (replaced by view endpoints) - Move /uris and /permissions routes into ClientsEditEndpoint - Fix scaffold build test: use local ProjectReferences instead of NuGet packages - Make HostingExtensionsEmitter and SettingsExtensionsEmitter conditionally emit Agents/Rag code - Extract HasAnyAgentContent property on DiscoveryData for shared agent detection logic - Add .scaffold-test/ to .gitignore
…nent errors MarketplacePackageDetail was missing inherited fields causing undefined property access that crashed the entire React tree. Added PageErrorBoundary to gracefully catch page-level errors without killing navigation.
…classes The source generator now tracks BaseTypeFqn for DTO types and emits `extends` clauses in generated TypeScript interfaces. This fixes MarketplacePackageDetail missing inherited fields from MarketplacePackage.
Blazor files deleted in our branch, accept deletion. Generator emitters aligned with main's unconditional agent registration and RAG settings.
The static HTML shell has inline scripts (theme init, import map) that were blocked by the Content-Security-Policy. Added nonce placeholders in index.html and per-request nonce injection in HtmlFileInertiaPageRenderer.
The CSP header unconditionally included upgrade-insecure-requests, which tells browsers to upgrade all HTTP requests to HTTPS. In CI, the e2e tests run against http://localhost:5000, causing the browser to fail loading scripts/styles over HTTPS on an HTTP-only server.
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.
Populates InertiaSharedData with auth state, menu items, public menu,
and CSRF token on every request so React layouts can read them from
Inertia shared props.