Firm record loading states now match the tabbed layout
This walkthrough covers the frontend-only skeleton replacement for
pramaan-spec#2253. Backend contracts, generated files,
and the Project board were not changed.
What Changed
- Replaced the stale long-scroll skeleton that showed a right action sidebar, a seven-column header stepper, and a header divider.
- Added a tabbed-shell skeleton with breadcrumb, masthead, segmented tab placeholder, and Overview content by default.
- Added per-tab loading content skeletons for Overview, Members, Support access, and Billing.
-
Reused existing skeleton primitives:
ui/skeleton,data-table-skeleton, andStatsCardSkeleton.
Before and After
Before: the route fallback still looked like the removed long-scroll page, including the right action sidebar and horizontal onboarding stepper.
After: the fallback mirrors the current tabbed shell and Overview content shape.
Per-Tab Loading States
The page Suspense fallback parses the ?tab= value and
renders the matching tab content skeleton when the URL targets a
non-default tab.
Members tab - table skeleton.
Support access tab - four eyebrow and card sections.
Billing tab - subscription, provisioning, and danger zone.
Measured Geometry
Storybook was measured at a 1400 x 1000 viewport against
Firms/FirmDetailView/LiveGrowth and
Skeletons/FirmDetailSkeleton/ShellOverview.
| Region | Real top | Skeleton top | Delta |
|---|---|---|---|
| Masthead | 97px | 97px | 0px |
| Tab bar | 204.5px | 205px | +0.5px |
| Content | 270.5px | 271px | +0.5px |
Masthead height delta was +0.5px and tab-bar height delta was 0px.
The captured source metrics are in
story-2253-assets/geometry.json.
Verification
pnpm exec tsc --noEmitpassed.pnpm run lintpassed with existing warnings only.pnpm run testpassed.pnpm run test:storybookpassed.-
Route fallback grep confirmed no stale
AdminDetailShell, action sidebar, ormd:grid-cols-7header stepper remains in the firm detail skeleton.