pf_app/ui/src
Paul Trowbridge a651c58dc3 Show when the pivot is rebuilding, and stop layouts overriding the theme
Two unrelated changes, in one commit because both touch Forecast.jsx in
ways that cannot be staged apart without an interactive add.

Calculating indicator. Perspective shows a beaker while the view
rebuilds, but it lives in the viewer's status bar, which is only
rendered while the settings panel is open -- so the signal disappears
exactly when the panel is closed and you have nothing else to go on.
Forecast.jsx now raises a counter around the calls that *start* a
rebuild and lowers it after viewer.flush(), broadcasting `pf-pivot-busy`
on the window; StatusBar listens and shows a spinner, following the
`pf-data-changed` pattern already used between the two.

Deliberately not driven from `perspective-config-update`, which was the
obvious hook and is wrong: measured on a depth change over a large
grain, the event arrives *after* the rebuild -- seconds late -- and the
flush that follows resolves in 6ms. It reports the end of the work, not
the start. This therefore covers what the toolbar drives (depth on both
axes, applying a layout) and not sorting or filtering from the viewer's
own chrome, which the app is never told has begun.

Theme. viewer.save() includes `theme`, so every persisted layout had one
baked in, and cleanLayout passed it through -- each restore reasserted
the stored theme and silently undid the light/dark toggle. It is the
reader's choice, not a property of the layout, so it is dropped on the
way in; a published layout can no longer impose its author's theme
either. sameConfig ignores it too, or toggling would light the dirty dot
and offer to save a change nobody made.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 01:15:35 -04:00
..
assets Scaffold React/Vite/Tailwind UI with 3-step Setup → Baseline → Forecast flow 2026-04-25 16:28:45 -04:00
components Show when the pivot is rebuilding, and stop layouts overriding the theme 2026-09-23 01:15:35 -04:00
views Show when the pivot is rebuilding, and stop layouts overriding the theme 2026-09-23 01:15:35 -04:00
App.css Scaffold React/Vite/Tailwind UI with 3-step Setup → Baseline → Forecast flow 2026-04-25 16:28:45 -04:00
App.jsx Land on the forecast somebody chose, not the newest one 2026-09-22 08:34:46 -04:00
auth.jsx Put the app behind a login 2026-09-14 22:20:25 -04:00
index.css Make the toolbar section labels readable 2026-09-19 15:22:20 -04:00
main.jsx Set row depth through ViewConfig instead of restoring it after every rebuild 2026-09-17 03:05:36 -04:00
theme.jsx Add light/dark mode with theme toggle 2026-04-25 23:29:25 -04:00