PR: #516: feat(matter): route placeholder modes — Inbox, Strategy, Chronology, Proof [Story-2030] by @ankitmaheshwari-com
View PR →

Files changed

10 file(s), +180 / -69 lines

Path Role + -
messages/en.jsonConfig+5-1
messages/hi.jsonConfig+5-1
src/app/[locale]/(workspace)/matters/[matterId]/chronology/page.tsxApp route+20-0
src/app/[locale]/(workspace)/matters/[matterId]/inbox/page.tsxApp route+20-0
src/app/[locale]/(workspace)/matters/[matterId]/proof/page.tsxApp route+20-0
src/app/[locale]/(workspace)/matters/[matterId]/strategy/page.tsxApp route+20-0
src/components/matter-detail/matter-mode-placeholder.tsxComponent+20-0
src/components/matter-detail/matter-worknav.tsxComponent+18-11
src/components/matters/live-matter-shell.tsxComponent+10-54
src/lib/surface-registry/route-registry.tsLibrary+42-2

Story-2030: Route the placeholder modes — Inbox, Strategy, Chronology, Proof

The four not-yet-built Work Modes — Inbox, Strategy, Chronology, Proof — become real, deep-linkable routes rendered via <Link>, and the last of the in-shell activeMode client state machine is removed. This continues EPIC-2018 (route-per-mode) on top of the fat layout (S1, Story-2019) and the Brief route (S2, Story-2029). The bodies are still the honest "lands in a later release" placeholder — navigable shells, not fake-data screens.

What moved

The activeMode state machine is gone

LiveMatterShell lost its activeMode / setActiveMode / onModeChange machinery (and the useState / useCallback / useRouter imports that drove it). Mode switching is now pure routing — the Worknav links navigate, the fat layout keeps the chrome put, and the matched route renders its body. The file is now unused chrome slated for deletion in S7 (#2034); this story only strips the machinery per its scope, and leaves LiveMatterDetailPage untouched.

Deliberately deferred (not this story)

Verification

pnpm gen:routes + pnpm check:routes (34 surfaces, fresh), pnpm lint (0 errors), pnpm test (1001 passed), and pnpm build are green. The build output lists all four new routes: /[locale]/matters/[matterId]/{inbox,strategy,chronology,proof}. No codegen / contract change (placeholder bodies have no data path).