refactor: adopt PageShell in products/programs pages (Refs #7106) [architect] - #7110
Conversation
Ports src/app/[locale]/products/page.tsx and src/app/[locale]/programs/page.tsx to the shared PageShell component (introduced in #7107, extended in #7108). Both pages restated the exact canonical scaffold — outer div with bg-[#0a0a0a] text-white overflow-x-hidden min-h-screen, Navbar, fixed background wrapper with opaque base + StarField density=medium showComets={true} cometCount={3} + GridLines 21/18, then Footer — so this is a pure DOM-preserving swap. Both pages own their hero <section className="relative … z-10">, so the port uses <PageShell contentClassName={null}> and lets the page's existing inner content sit directly under the background layer, matching the pattern docstring for products/programs called out in PageShell.tsx. Refs #7106 (14 page.tsx files remain; each subsequent port lands as its own PR — acmm-leaderboard is deferred because it uses non-canonical GridLines 20/20 with strokeColor override and bg-[#0a0a0f], which the issue calls out as drift that a mechanical port would silently normalise) --- Filed by architect agent (ACMM L6 — full mode) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: kubestellar-hive[bot] <223556219+Copilot@users.noreply.github.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
✅ Deploy Preview for kubestellar-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Hi @hivecommons-hive[bot]. Thanks for your PR. I'm waiting for a kubestellar member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
Thank you for your contribution! Your PR has been merged. Check out what's new:
Stay connected: Slack #kubestellar-dev | Multi-Cluster Survey |
…s/[slug] (#7113) Continues the #7106 port sequence started by #7107 (PageShell interface) and continued by #7108 and #7110 (five canonical pages). This slice ports the two remaining scaffold-owning pages in the drift matrix. - `acmm-leaderboard/page.tsx` — the "20/20 medium + strokeColor variant" row of the drift matrix. Ported via `<PageShell>` with a typed `background` prop that carries the four variant values (grid 20/20, strokeColor "rgba(255,255,255,0.03)", stars density "medium", plus the `pointer-events-none` wrapper class and `baseLayerClassName: false` to match the current DOM). The one-off `strokeColor` override that #7106 flagged as pre-#7107 tech debt now lives in the shell props where the drift matrix can grep it, not buried in JSX. - `programs/[slug]/ProgramPageClient.tsx` — the "21/18 + medium + comets 3" canonical row. Ported to `<PageShell>` with the default background; the `<main className="relative min-h-screen">` wrapper stays inside `children` under `contentClassName={null}`, mirroring how PR #7110 handled `programs/page.tsx` and `products/page.tsx`. No visual/behaviour change intended: outer div classes, background wrapper classes, and widget prop values are preserved exactly per the #7106 drift matrix. Verification - `npx tsc --noEmit` — clean - `npx eslint <changed>` — clean - `npx vitest run` — 140 files / 1588 tests pass (PageShell suite: 13/13, acmmLeaderboardComponents: 16/16 unchanged) Refs #7106 (three variant pages remain: marketplace, quick-installation, contribute-handbook, plus the bare coming-soon* pair — each is a distinct variant class per the drift matrix and will land as its own slice) Signed-off-by: kubestellar-hive[bot] <223556219+Copilot@users.noreply.github.com> Co-authored-by: kubestellar-hive[bot] <223556219+Copilot@users.noreply.github.com>
Refactor
Ports
src/app/[locale]/products/page.tsxandsrc/app/[locale]/programs/page.tsxto the shared
PageShellcomponent (introduced in #7107, extended in #7108).Both pages restated the exact canonical scaffold — outer
<div className="bg-[#0a0a0a] text-white overflow-x-hidden min-h-screen">,<Navbar />, fixed background wrapper with opaque base +StarField density="medium" showComets={true} cometCount={3}+GridLines horizontalLines={21} verticalLines={18}, then<Footer />— so this is a pure DOM-preserving swap.Both pages own their hero
<section className="relative … z-10">, so the port uses<PageShell contentClassName={null}>and lets the page's existing inner content sit directly under the background layer. This matches the pattern that thePageShell.tsxdocstring explicitly calls out forproducts/programs.Verification
npm run type-check— cleannpm run lint— clean (no new errors; pre-existing warnings unchanged)npm test— 1588 tests pass across 140 filesnpx prettier --writeon both filesScope note
Refs #7106 (14
page.tsxfiles remain; each subsequent port lands as its own PR —acmm-leaderboardis deferred because it uses non-canonicalGridLines 20/20with astrokeColoroverride andbg-[#0a0a0f], which the issue calls out as drift; a mechanical port would silently normalise it).Filed by architect agent (ACMM L6 — full mode)
— hive: agent=architect backend=copilot model=claude-opus-4.7 copilot=1.0.88