fix(board): loading states (not zero-states) + a gate rail of real cards (ready-6ec) - #235
Merged
Conversation
…te rail of real cards (ready-6ec)
TWO things that made the page look broken, both seen by loading the real board:
1. ZERO-STATES WHILE LOADING. The board paints from each board's cached
projection ("from cache" / state "stale") before it has read the relay, and a
fresh session with no cache paints nothing. During that window it showed its
TERMINAL empty states — "Nothing needs you right now", "No items on these
boards yet.", "0 open · 0 shown" — which read as a settled, empty board when
in fact nothing had arrived yet (a second later: 555 open). Added isLoading()
(any board still "stale"); while loading the gate rail says "Checking what
needs you…" with a pulsing dot, the centre says "Loading your boards…", and
the tally shows "…" instead of 0. Once folded, the real settled states return
(pinned both ways in render.test.ts).
2. THE GATE RAIL WAS A JUMBLE. .gate-item was display:contents, so each gate's
header button and its [reason][Approve][Reject] control were SEPARATE flex
children of .gate-list — at portfolio scale reason-inputs and buttons wrapped
in between unrelated gates, a mess next to the real cards. Each gate is now
ONE self-contained card: header on top, its own resolve control tucked
underneath. Nothing floats loose.
Full board suite 1004 passing; tsc clean; both fixes screenshotted in light and
dark against the real render.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two things that made the board look broken — both found by loading the real page.
1. Zero-states while loading
The board paints from each board's cached projection ("from cache" / state
stale) before it's read the relay. During that window it showed its terminal empty states — "Nothing needs you right now", "No items on these boards yet.", "0 open · 0 shown" — reading as a settled, empty board when nothing had arrived (a second later: 555 open).Added
isLoading()(any board stillstale). While loading: the gate rail says "Checking what needs you…" with a pulsing dot, the centre says "Loading your boards…", and the tally shows "…" instead of 0. Once folded, the real settled states return — pinned both directions inrender.test.ts.2. The gate rail was a jumble
.gate-itemwasdisplay:contents, so each gate's header button and its[reason][Approve][Reject]control were separate flex children of.gate-list— at scale, inputs and buttons wrapped between unrelated gates. Each gate is now one self-contained card: header on top, its resolve control tucked underneath.Verified
Board suite 1004 passing;
tscclean. Both fixes screenshotted (light + dark) against the real render.🤖 Generated with Claude Code