Clean up the new releases UI #49
Labels
No labels
actions
bug
cli
duplicate
enhancement
fork
forum
git storage
help wanted
insights
invalid
issues
moderation
oidc
ownership transfer
packages
pr/merge protection rules
projects
pull requests
question
releases
sponsorships
tags
webhooks
wiki
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crueber/walhub#49
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
This is what it looks like right now:
That section on the left doesn't look great right now. Redesign it so that it looks good.
Fixed by #60 (branch fix/issue-49): new-release composer redesigned — centered max-w-2xl layout with section fieldsets, tag picker + count line, checkbox option rows, inline validation; behaviors unchanged. Browser-verified (dark + light, 16/16 checks, zero console errors).
Review of PR #60 (fix/issue-49,
6880aba) — new-release composer redesign.BEFORE vs AFTER: the before-shot bare boxed form (tag/title/notes + inline checkboxes/buttons, adrift in page whitespace) is now a centered max-w-2xl composer matching the IssueNew/PullNew convention. All requested composition present in web/src/pages/ReleaseNew.jsx: heading row + 'all releases' back link (line 79, href ///releases — correct list route, round-trips with Releases.jsx new-button); Target/Content/Visibility fieldsets with legends + per-field help text (lines 95,126,166); tag datalist kept on tags({n:100}) stream with count/empty/loading line (lines 113-123, loading guard getTags()!==undefined matches the useData undefined-initial + Releases.jsx latest-panel convention); title placeholder follows typed tag (line 137); draft/prerelease as bordered checkbox rows with descriptions (lines 168-197); action row with primary create + autodraft, busy labels, asset-upload note (lines 198-214).
No-required-attribute decision: APPROVED as complete. Empty-tag submit always surfaces inline error, never silently no-ops: (1) both buttons disabled until tagged (lines 198,204), (2) Enter-key submit with disabled button still fires onSubmit -> create() sets 'Choose a tag for this release.' via role=alert line (lines 50-53,86-93) and preventDefaults before the check, (3) tag input trims on entry so whitespace-only is also caught. No required/pattern/type=email attrs exist, so no native bubble can pre-empt the single inline channel. fillAutodraft empty-tag guard (lines 31-34) is unreachable via UI (button disabled) but harmless defense-in-depth. Minor: the error only clears on the next submit/autodraft attempt, not while typing — same as IssueNew, acceptable.
Behaviors preserved: autodraft fill (+title-from-tag), create->detail nav, busy/disabled logic all unchanged; backend/SDK untouched. No new deps (only A added from already-allowed @solidjs/router). Dark+light classes throughout (emerald link, red alert, zinc borders). Keyboard/focus: explicit for/id labels, label-wrapped checkboxes, focusable back link, no traps; error announced via role=alert.
Doc decision (docs/go/12_web_ui.md) is accurate on every claim. AGENTS laws 1/7/8/12 hold (no deps; busy labels + former silent no-op now errors; page-only, no seam change; decision appended same-change).
VERIFY (scratch worktree /tmp/pr60 @
6880aba, removed afterward): node --test web/test/unit/*.test.js -> 245 pass / 0 fail (note: scratch needed a node_modules symlink to the main worktree; two initial failures were missing-deps artifacts, not PR regressions — PR touches only the .jsx + doc). vite build -> clean (108 modules, 1.51s). No browser drive (static composition review + headless cover; noted per brief).NIT (non-blocking): shared getBusy drives both button labels, so running autodraft labels submit 'Creating…' and vice versa (lines 199,207). Transient + both disabled; suggest separate signals only if touching the file again.
No code changes pushed — nothing blocking found. MERGE RECOMMENDATION: ready to merge.
Fixed by PR #60 (review clean, 1 non-blocking nit; 245/245 node tests), merged. Closing.