[Story-1081] Filing Types catalog → forum gold-standard parity

Story 1081Epic None44 files · +1594/−1558

PR #255 · pramaan-io/pramaan-app · merged 2026-06-08

Why this matters

A settings page that lies about its own state.

Why the Live tab still showed archived rows.

Two tabs, two truths.

The fix — One fetch, one cache, one optimistic flip — and delete quietly hands off to archive.

How it flows

sequenceDiagram
  autonumber
  participant admin as Admin
  participant cache as TanStack cache
  participant server as Server / Gateway
  admin->>cache: click Archive
  cache->>cache: optimistic flip · row jumps tab
  cache->>server: archive mutation
  server->>server: settle · 200
  cache->>cache: reconcile · toast
  server-->>cache: 409 conflict
  cache->>cache: rollback to prior tab

Files changed (44)

File±
docs/walkthroughs/story-1081-walkthrough.html+173
messages/en.json+46
messages/hi.json+46
src/app/[locale]/(workspace)/settings/matter-configuration/filing-types/actions.ts+62 −68
src/app/[locale]/(workspace)/settings/matter-configuration/filing-types/page.tsx+49 −49
src/app/api/internal/filing-types/[filingTypeId]/archive/route.ts+13
src/app/api/internal/filing-types/[filingTypeId]/route.ts+34
src/app/api/internal/filing-types/[filingTypeId]/unarchive/route.ts+13
src/app/api/internal/filing-types/route.ts+27
src/components/settings/filing-types/filing-type-applies-to-field.tsx+8 −8
src/components/settings/filing-types/filing-type-archive-dialog.tsx+0 −61
src/components/settings/filing-types/filing-type-catalog-row-actions.tsx+0 −74
src/components/settings/filing-types/filing-type-catalog-sheet.tsx+0 −136
src/components/settings/filing-types/filing-type-delete-dialog.tsx+50
src/components/settings/filing-types/filing-type-sheet.stories.tsx+74
src/components/settings/filing-types/filing-type-sheet.tsx ★+126
src/components/settings/filing-types/filing-type-status-badge.tsx+0 −21
src/components/settings/filing-types/filing-types-catalog-adapter.ts+0 −42
src/components/settings/filing-types/filing-types-catalog-empty-state.tsx+0 −30
src/components/settings/filing-types/filing-types-catalog-header.tsx+0 −31
src/components/settings/filing-types/filing-types-catalog-presentation.ts+0 −93
src/components/settings/filing-types/filing-types-catalog-story-state.test.ts+0 −148
src/components/settings/filing-types/filing-types-catalog-story-state.ts+0 −59
src/components/settings/filing-types/filing-types-catalog-story-surface.test.tsx+0 −41
src/components/settings/filing-types/filing-types-catalog-story-surface.tsx+0 −101
src/components/settings/filing-types/filing-types-catalog-table-row.tsx+0 −82
src/components/settings/filing-types/filing-types-catalog-table.tsx+0 −42
src/components/settings/filing-types/filing-types-catalog-toolbar.tsx+0 −41
src/components/settings/filing-types/filing-types-catalog-types.ts+0 −37
src/components/settings/filing-types/filing-types-fixtures.ts+62
src/components/settings/filing-types/filing-types-list-page.stories.tsx+0 −93
src/components/settings/filing-types/filing-types-list-page.tsx+101 −170
src/components/settings/filing-types/filing-types-presentation.ts+34
src/components/settings/filing-types/filing-types-table.stories.tsx+113
src/components/settings/filing-types/filing-types-table.tsx ★+159
src/components/settings/filing-types/filing-types-toolbar.tsx+55
src/components/settings/filing-types/filing-types-types.ts+15
src/components/settings/filing-types/use-filing-type-actions.ts+111
src/components/settings/filing-types/use-filing-type-sheet.tsx ★+127
src/components/settings/filing-types/use-filing-types-catalog-story-state.ts+0 −114
src/lib/filing-types/gateway.ts+68 −17
src/lib/filing-types/presentation.ts+15
src/lib/filing-types/types.ts+7
src/lib/kubb-client.ts+6