Buildings on the company page — the staff table

Every building in or out of Propflow, its modules within the plan, and whether the customer may change buildings

30 Sept 2026 · branch s6a-admin-buildings-table · captured against propflow-stage · at a91a0d9bc6

Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.

1 · The Buildings section, light

The staff Buildings table replaces the old per-building module picker.

What to look at

The old per-building module picker is gone; in its place is the shared Buildings table, staff variant. At the top, the one company switch: Customer can change buildings, with who changed it and when. Each row: the building, units, the In Propflow (dashboard data) switch, an Off / Live choice per module the company plan includes (Maintenance also offers Drafts, which the helper line above the table explains, ADR-0139 §9; this test company's plan has only Leasing), Notes, and Status last as a dot and label.

Asserted in the captured DOM — Customer can change buildings · (DASHBOARD DATA) · STATUS. The table loaded (not its loading or error line), with the customer switch and the staff column label.

The admin company page's Buildings card: the customer switch above a table of buildings with In Propflow switches, module checkboxes, notes and status

2 · Recent changes, under the table

Notes

Every save lands here as one change with who made it and when, and staff can undo it until a building in it changes again.

Asserted in the captured DOM — Recent changes. The panel rendered under the table.

The Recent changes panel under the Buildings table

3 · The same section, dark — last, because the theme persists

Notes

Same page, theme switched to dark through the product's own control. Every colour this PR adds is a token. Two things in this picture are the shared primitives, app-wide, and not from this PR: the Checkbox draws a white tick on a white box, and the Toggle's on-state track goes near-white so its knob barely reads. Both are the same components every settings page uses; they are left for a primitives fix rather than patched locally here.

Asserted in the captured DOM — Customer can change buildings · (DASHBOARD DATA) · STATUS. Same strings as the light capture: a theme switch changes colours, never content.

The same Buildings card in dark theme

Two critique rounds, against brand-and-design.md and the approved mock

Round 1 and round 2 critique

Round 1 (first capture) — a real bug, not a style note. The card showed We couldn't load this company's buildings. The staff read was addressed with ?organizationId=, which is the settings WRITE door's parameter; the READ door parses the scope parameter ?org= and answered 400. The unit test mocked fetch and could not see it. Fixed: reads use ?org=, writes use addressedTo(). On the second capture the table rendered but overflowed the half-width main column: the long staff header In Propflow (dashboard data) pushed Notes and Status (screen rule 6: Status last) out of view behind a horizontal scroll.

Round 2 (these captures). The staff header now wraps onto two lines, so every column fits at 1600 and Status is visible as the last column, a dot plus label (rule 6), compacting to On with the full module list on hover when tight, as the shared table designs it. Matches the mock: one switch per building labelled for staff, a checkbox only for modules in the plan (Leasing here; a module the plan lacks is simply absent, rule 18), Notes, Status; the company-wide Customer can change buildings pill sits above the table as a Badge (a pill outside a table is allowed). No who/when shows beside the pill here because this test company never had the setting written — it is the derived default. Known and not fixed here: the dark Checkbox/Toggle contrast above. No save was run, so nothing was written to stage; saving a module, flipping the customer switch and Undo are pinned by AdminBuildingsCard.dom.test.tsx.

Round 3 (after the Off / Drafts / Live choice replaced the module checkbox, per the gk-drafts-mode ruling). A native select is as wide as its longest option, so Drafts (we review first) pushed Status out of view again. Fixed: the options say Off / Drafts / Live, the helper line above the table says once what Drafts means, the staff name column is capped narrower, and a long building name now ends in an ellipsis with the full name on hover instead of being cut mid-word.

PropFlow Docs