fix(ui): Batch/Transaction round 3 — single footer, error placement, focus, header count, tab icons - #736
Merged
Merged
Conversation
…unt, tab icons Closes #726. Closes #727. Closes #729. Closes #730. Closes #731. Closes #732. The bottom Cancel/Execute footer goes away; the top row is the only action row, and the execute error moves out of it to a full-width alert directly above the Execution Plan card, where a failure is visible next to the button that raised it regardless of plan length. reset() now hides both error elements - hiding a stage never cleared them, so an abandoned attempt's error greeted the next one. The preflight reveal keeps its focus handoff but passes preventScroll: on a plan taller than the viewport the default scroll-into-view pinned the Execute row to the top of the page. The stage's programmatic focus also no longer paints the browser's default ring around the section. The created count moves into the response card head, left of the status badge; updated/other/failed keep the summary line below, which hides when empty. The Actions and Bundle JSON tabs gain their design icons (sliders, code).
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Contributor
Author
|
Manually verified on a local build: tall-bundle drop holds the viewport (#732) with no stray focus ring (#726), single top footer with the failed-execute alert landing above the plan (#730), Cancel clears the stale error (#731), created count in the response head (#729), and the tab icons (#727). All good. |
smunini
approved these changes
Aug 27, 2026
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.
Closes #726. Closes #727. Closes #729. Closes #730. Closes #731. Closes #732.
One pass over the Batch/Transaction stage, issue by issue:
Cancel/Executefooter is gone; the top row is the only action row.#batch-execute-errormoves to a full-width alert directly above the Execution Plan card (after the semantics notice), so a failed execute is visible next to the button that raised it however long the plan is.batch.jsdrops the second set of wiring.reset()now hides#batch-upload-errorand#batch-execute-error. Hiding a stage never cleared them, so an abandoned attempt's error was still on screen for the next one — same defect family as ui: Bulk Import dialog keeps typed values after cancel/close, and New Submission toggle shows a default browser focus ring #682.{ preventScroll: true }: on a plan taller than the viewport,focus()'s scroll-into-view pinned the Execute row to the top. The handoff itself stays (it is ui: add a reusable busy/working indicator, and apply it to Batch/Transaction upload and execute #679's fix).#batch-preflight:focus { outline: none }: the stage's programmatic focus fell through to the browser's default two-tone ring around the whole section. It istabindex="-1", not keyboard-reachable, so the ring was pure noise.3 created200). Per the issue's default reading,updated/other/failedkeep the summary line below, which now hides when it has nothing to say — sofailedstays visible whenever present.sliders.svg,code.svg, the issue's suggested candidates from the existing set), with the.batch-tabflex treatment the issue prescribes.Tests
The batch spec moves to the surviving
#batch-execute-top/#batch-cancel-topids and gains regressions: error placement above the plan card, exactly one footer, stale-error-after-cancel (#731), and a tall-bundle reveal that assertsscrollY === 0plus no focus outline (#726/#732). Fullhelios-uiRust ring, batch + nojs + design-system + a11y (light/dark) Playwright projects green; verified visually against the running server.