feat(web): add compliance case board screen on live cases api - #291
Merged
Conversation
Add a read-only compliance case board to the sandbox dashboard. It lists cases by status from GET /v1/compliance/cases, with a status filter that defaults to OPEN and refetches on change, and the usual loading, empty and error states with retry. The screen mirrors the accounts and transactions screens: a TanStack Query hook over the shared api client, a typed CaseResponse matching the backend contract, a status pill, and a sidebar entry. All data comes from the API; no fields are invented. Closes #287
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.
E-08 Sandbox UI #287 (F-08.9, read scope) - the first slice of the freshly-decomposed E-08 epic.
What
A read-only Compliance case board in the sandbox dashboard, listing cases by status from the live
GET /v1/compliance/cases?status=API. Mirrors the merged accounts/transactions read screens:features/cases/useCases(TanStack Query over the sharedapiFetch),CasesTable,CaseStatusPill.routes/Cases.tsx: a status tab filter (OPEN/CLAIMED/ESCALATED/RESOLVED, default OPEN) that refetches on change, plus loading/empty/error + Retry states.api/types.ts:CaseStatusunion +CaseResponse {id, reference, status}matching the backend DTO field-for-field (no invented fields; the list is a plain array, not paged; status is always sent since the backend requires it)./compliance/cases+ Sidebar Compliance entry.Decomposition note
This PR also decomposed E-08 #166 into child issues: #287 (this), #288 decision log viewer, #289 payments (7a backend list + 7b UI), #290 web packaging. F-08.4 OAuth2 PKCE is blocked by #236 (Keycloak); the sandbox uses a dev-bearer token. shadcn deferred.
Gate chain
Web gates green: lint 0 errors, typecheck, vitest 43 passed (7 new), build. No backend touched.
Closes #287