Open a board's cards in an inspector beside it, from 1100px #241
No reviewers
Labels
No labels
No milestone
No project
No assignees
5 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Grandiras/Ponente!241
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "ui-v2-inspector"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The UI language v2 inspector, signed off by the owner. On a board from 1100px, a card opens in a panel docked on the right instead of a centred dialog.
What changes
CardModal Dockable(the board page's dialog) gets.modal-backdrop-dockable. From 1100px,app.cssturns the backdrop into a 400px panel at the right edge:--inspector-w) and stay live;.card-open, passed down viaColumnView.OpenCardId), and only at that width, because under a phone's sheet the ring change would animate the board.aria-modalfollows the width (js/inspector.js), since a docked panel isn't modal.docs/ui.mdgains On a board, from 1100px: the inspector. There is a changelog line in both locales.Checked
tools/verify.shpasses (584).aria-modal=false, ring follows, Escape closes) and at 1024 (a modal again), in light and dark.🤖 Generated with Claude Code
🤖 Reviewing this PR — the review will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the review runs.
🤖 Reviewing this PR — follow along in the action run; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
✅ Verdict: approve — no blocking issues found.
The inspector is a small, well-scoped change. The Dockable flag, the CSS-only docking at 1100px, and
aria-modalfollowing the width throughjs/inspector.jsall hang together. Disposal is correct:LocalizedComponentBasedocuments the pattern of async-only teardown callingbase.Dispose(), andDisposeAsyncdoes that and tolerates a disconnected circuit.OnParametersSetre-initialises per card id, which matches the "unsaved edits go on switch" claim. Docs, changelog in both locales, and an e2e spec are all included.Minor nits, none blocking:
CardModal.razorends with a stray trailing blank line._dockimport andwatchhappen only on first render. That is fine because the dialog element persists across card switches.🧠 claude-sonnet-5-5 · ⏱ 0m 12s · 3 turns · tokens: 17.2k in / 1.2k out (+40.3k cache-read)
📜 Full session transcript
✅ Verdict: approve — no blocking issues found.
Good to merge. The inspector is a clean, contained change: the docked mode is scoped to
Dockable(board only), the scrim removal is exactly::before(the layer that carries it), and Escape works docked for the same reasonmodal-escape.jsalready handles — the panel keeps.modal-backdropand stays focused, so the delegated handler finds it.Checked against the code:
DisposeAsyncfollows the documented pattern inLocalizedComponentBase(async-only teardown callingbase.Dispose()), and the catch list covers the realistic interop failures on teardown.OnParametersSet, so "unsaved edits go, as a click outside dropped them" is accurate; thewatch/_dialogbinding survives because Blazor preserves the dialog element across those re-renders.aria-modal="false"is not clobbered by Blazor re-renders — the attribute is a constant in markup, so the diff never re-patches it — and a fresh instance re-runswatch, so close/reopen at a different width is correct (the new e2e covers exactly that).animation: none+ re-enable ordering resolves correctly underprefers-reduced-motion: reduce(no motion, as documented).Minor, non-blocking:
catch (JSException) { }around the module import means a failed load leavesaria-modal="true"while docked — reasonable graceful degradation, but a one-line comment (or a debug log) would make the silent swallow deliberate-looking rather than accidental.inspector.js's module-scopedwatchedassumes one dockable dialog at a time;watchdoes callunwatch()first, so it's safe today — worth a comment if a second dockable page ever appears.CardModal.razor.⏱ 3m 10s · 15 steps · $0.0268 · tokens: 84.3k in / 1.3k out (+235.5k cache-read) · Go: 5h 2% · wk 8% · mo 87%
📜 Full session transcript
🤖 Reviewing this PR — the review will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the review runs.
🤖 Reviewing this PR — follow along in the action run; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
✅ Verdict: approve — no blocking issues found.
The nits from my last pass are fixed, and I found nothing new that blocks merging.
CardModal.razoris gone.catch (JSException)inOnAfterRenderAsyncnow has a comment saying why. If the module is missing,aria-modalstaystrue, which is the safe fallback..card-openis now styled only inside themin-width: 1100pxquery. That fixes the bug where the ring animated under the phone sheet.aria-modalfollowing the width, thewatch/unwatchsingle-slot logic ininspector.js, and async disposal inCardModalall look right. The new e2e spec covers docking, switching cards, Escape, and the 1024px modal fallback.docs/ui.mdand the changelog (both locales) are updated.Before merging, confirm that the full e2e re-run on the head commit is green. The PR description says it was still in progress.
🧠 claude-sonnet-5-5 · ⏱ 0m 8s · 2 turns · tokens: 16.5k in / 1.0k out (+12.2k cache-read)
📜 Full session transcript
✅ Verdict: approve — no blocking issues found.
Good to merge. Re-review of the head: both minor notes from my last pass are addressed — the
catch (JSException) { }around the module import now explains itself (aria-modal stays true as a stricter claim, never a wrong non-modal announcement),inspector.jsdocuments its one-slotwatchedassumption, and the stray trailing blank line inCardModal.razoris gone. No new issues in the added commits; the ring-scoping fix under the phone sheet (.card-openinside the 1100px media query) is correctly placed. Disposal, card-switch re-initialisation, Escape handling, and the 1024px fallback in the e2e spec all check out as before. One open item from the PR description: the full e2e re-run on the head was still in progress at posting — confirm it is green before merging.⏱ 0m 53s · 5 steps · $0.0060 · tokens: 29.4k in / 666 out (+23.6k cache-read) · Go: 5h 2% · wk 8% · mo 87%
📜 Full session transcript