Import page: Owner/Name row misaligned — apply the #497 New-repo fix identically (matched heights, aligned labels, narrower Owner column) #499
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#499
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?
What's requested
On the Import repository page, the Owner select and Name input sit side-by-side in a 50/50
sm:grid-cols-2grid, and the pair is visibly misaligned — the same defect just filed for the New repository page (#497). Apply the identical fix to Import: matched control heights, aligned labels, and a narrower Owner column. #497 is the reference implementation — same classes/component on both pages, no divergence.Prescribe a matched pair (identical to #497's fix):
appearance-nonestyling on the select) rather than relying on the.inputclass alone, since native<select>vs<input>render a few px apart in some browsers.min-h-[2rem], aria-live) must not affect the sibling column's geometry (error text outside the two-column grid row, oritems-starton the grid so the controls stay top-aligned).allowedOwners); use the same asymmetric split #497 lands (e.g.sm:grid-cols-[minmax(0,1fr)_minmax(0,2fr)], exact ratio implementer's call), withminmax(0, …)so long owner names truncate instead of blowing the column.Evidence (static read of current tree, commit
b3544e5)web/src/pages/Import.jsx:281-321— the row:<div class="grid grid-cols-1 gap-3 sm:grid-cols-2">wrapping:Import.jsx:282-302):<label class="grid gap-1">+<select id="import-owner" class="input font-mono">(disabled fallback select while owners load). No sub-text.Import.jsx:303-320): same shape plus<p id="import-name-error" class="min-h-[2rem] …">inside the label — a 2rem-tall block only the Name column has, so the two grid columns have unequal intrinsic heights.web/src/pages/New.jsx:147-186— the New page row is copy-paste-identical (exceptnew-owner/new-nameids). This ticket's fix must be whatever #497 lands, applied here; if #497's fix extracts a shared component, consume it here rather than re-duplicating.web/src/ui.css:120-123—.inputisw-full px-2.5 py-1.5 text-sm; it styles both controls but pins nothing about select-vs-input rendered height, which is the height-match gap on this page too.Architecture notes
import-owner/import-namevsnew-owner/new-name). The fix is intentionally identical: if #497 is implemented as shared classes, mirror them exactly; if it extracts a shared Owner/Name field component, Import consumes the same component.validateRepoCharslive validation (#486) and the mirror-mode error path (validateMirrorCreate) are unaffected — only the row's layout changes; the error slot'saria-liveandaria-describedbywiring stays.Acceptance criteria
/import, Owner select and Name input are the same rendered height and top-aligned; their labels sit on one shared baseline.aria-liveintact.sm:and up with the same ratio as #497's fix; long owner names truncate/ellipsis rather than stretching the column; mobile single-column stack still works./importand/newuse identical classes (or the same shared component) — no drift between the two pages.aria-label, disabled loading fallback intact); Import's Source URL and Token fields unaffected.Already satisfied by #497 (PR #500): Import.jsx:286 renders the shared OwnerNameRow with identical props to New.jsx:152 (prefix/placeholder only differ) — matched heights, below-grid error slot, asymmetric split, and live validation all come along by construction. No separate change needed. Closing.