Move concern workflows from Home into concern controls

This commit is contained in:
2026-02-26 10:06:42 +01:00
parent 4d728f91cf
commit 54286f80d5
19 changed files with 359 additions and 454 deletions

View File

@@ -94,7 +94,8 @@ This pattern is a strong baseline for low to medium scale and should be the defa
- Blazor component tree rooted in `Components/App.razor` and `Components/Pages/Home.razor`.
- Home page logic split by concern with partials (`Home.State/Auth/Campaign/Character/Skill/Lifecycle/Realtime/Api/Presentation/Validation.cs`) to keep churn localized.
- Form UX state uses reusable `FormState<TModel>` containers in leaf controls (`HomeControls/*`) rather than parallel form/error/message property sets in `Home`.
- `Home` workflows return `FormSubmissionResult` so controls can render field and summary errors without parent-owned form wiring.
- Concern controls execute their own auth/campaign/character/skill mutation workflows and notify `Home` only for shared-state refresh/orchestration.
- Shared browser API interop is centralized in `RpgRollerApiClient` and reused by `Home` plus concern controls.
- Browser API calls and SSE are handled via `wwwroot/js/rpgroller-api.js` interop.
- UI state is maintained server-side per circuit with session/tab persistence for campaign + screen selection.
- SSE-driven campaign refresh with reconnect backoff and explicit offline/manual-refresh fallback.