Profile page: remove leftover repository summary and move owner tabs into the right sidebar #437
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#437
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?
Profile page: drop the leftover repo-count teaser and move the owner tabs into the sidebar
What's requested
Two changes to the owner profile page (
web/src/pages/Repos.jsx, theOwnerPageprofile view, route/:owner):Remove the leftover repository summary section at the bottom of the profile view. The profile view still renders the repository-count teaser ("N repositories · View all →") that predates the #422 tab split —
web/src/pages/Repos.jsxlines 531-549 (the<Show when={view() === "profile"}>block rendering the count + link from the sharedrepos:{owner}doc). With the Repositories tab now owning the listing, this summary is redundant leftover chrome on the identity page. Delete the teaser block from the profile view (the repositories tab's own count paragraph at lines 660-662 stays untouched).Move the Profile / Repositories / Organizations tabs into the right sidebar as a vertical tab list above the avatar. Today
<OwnerTabs>renders as a horizontal strip at the top of the page flow (line 422, component defined at line 102; landed in #435). Move it into the profile-layout right sidebar (web/src/pages/Repos.jsxline 565, theprofile-sidebaraside from #421) as the FIRST element, above the avatar, styled as a vertical tab list that behaves as true tabs:border-zinc-200 dark:border-zinc-700, the existing text/hover treatment).aria-current="page", thetab-badgerepository count on the Repositories tab, and the isOrg gating (Organizations tab hidden on org profiles, #370).Architecture notes
OwnerTabs, line 102) and the sidebar (profile-sidebaraside, line 565, #421) are the two seams; no API change, no new fetches — the count already rides the sharedrepos:{owner}payload (#422).<Show when={!isOrg() && (userSrc() || isSelf() || getProfile()?.can_edit)}>gate. The tabs must render for ALL viewers on both user and org profiles — if they live inside that aside, either widen the gate or render the tab list as a sibling above the gated aside inside the same sidebar column. Planner's call; the visible requirement is tabs-above-avatar in the right column on every owner profile.view="repos"/view="orgs"branches) currently render the strip plus their content with no sidebar. After the move, decide and note how those views surface the tab list (e.g. render the same sidebar shell on all three views so navigation stays one click away) — planner's call, but the tabs must remain reachable from every owner route.web/test/unit/owner-tabs-top-435.test.js(asserts strip-first placement — will need rework to the sidebar shape), plusowner-repos-tab-422.test.js,owner-orgs-tab-430.test.js,profile-sidebar-421.test.jsas affected.Acceptance criteria
aria-current="page", the repository-count badge, and the #370 org gating survive the move.Fix ready for review: #439 (#439) — branch fix/issue-437. Sidebar vertical tabs (ungated sibling above the gated asides) + teaser deleted, all three views share one layout grid. node --test 810 total / 796 pass (14 pre-existing failures, identical set on pristine main); vite + esbuild green. Not merging per instructions.
Review of PR #439 (fix/issue-437), verified in scratch worktrees on branch tip + pristine origin/main (node v26, web/node_modules symlinked from main; no browser — node tests + source reasoning only, as instructed; no docker, no live instance touched).
ACCEPTANCE CRITERIA (all 7 pass):
390px: grid-cols-1 base + min-w-0/flex-col/no-fixed-widths (reasoned, not browser-rendered — noted). No backend/SDK/API change (diff is web/ + docs only); no dep changes (package.json/lock/go.mod untouched). Docs: 12_web_ui.md FIXED(#437) entry accurate on design; see fix below for its test counts.
FULL-SUITE HEAD-TO-HEAD (claim rigorously reproduced):
MERGE RECOMMENDATION: ready to merge (after CI confirms). No structural issues; the one factual inaccuracy is already fixed on the branch.
Fixed by PR #439 (review clean + test-count doc fix by reviewer; all 7 criteria pass, coverage replaced not dropped, zero PR-caused failures), merged. Closing.