From b1bd18844cb28531edc82a74ac8038a0fe85609e Mon Sep 17 00:00:00 2001 From: "kubestellar-hive[bot]" <223556219+Copilot@users.noreply.github.com> Date: Sun, 27 Sep 2026 23:06:28 -0400 Subject: [PATCH] [architect] refactor: adopt PageShell in acmm-leaderboard and programs/[slug] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 `` 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 `` with the default background; the `
` 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 ` — 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) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: kubestellar-hive[bot] <223556219+Copilot@users.noreply.github.com> --- src/app/[locale]/acmm-leaderboard/page.tsx | 30 ++++++++----------- .../programs/[slug]/ProgramPageClient.tsx | 24 +++++---------- 2 files changed, 19 insertions(+), 35 deletions(-) diff --git a/src/app/[locale]/acmm-leaderboard/page.tsx b/src/app/[locale]/acmm-leaderboard/page.tsx index a5d46e484..b668ce58a 100644 --- a/src/app/[locale]/acmm-leaderboard/page.tsx +++ b/src/app/[locale]/acmm-leaderboard/page.tsx @@ -1,12 +1,7 @@ "use client"; import { useState, useMemo, useCallback, useEffect } from "react"; -import { - GridLines, - StarField, - Navbar, - Footer, -} from "../../../components/index"; +import PageShell from "../../../components/master-page/PageShell"; import { gtagEvent } from "../../../components/GoogleAnalytics"; import { ACMM_PROJECTS, BADGE_PARTICIPANTS, SNAPSHOT_DATE } from "./data"; import { @@ -175,15 +170,16 @@ export default function AcmmLeaderboardPage() { }; return ( -
- - - {/* Background effects */} -
- - -
- + {/* Hero section */}
@@ -478,8 +474,6 @@ export default function AcmmLeaderboardPage() {
- -
-
+ ); } diff --git a/src/app/[locale]/programs/[slug]/ProgramPageClient.tsx b/src/app/[locale]/programs/[slug]/ProgramPageClient.tsx index b6901837a..3c799ddb7 100644 --- a/src/app/[locale]/programs/[slug]/ProgramPageClient.tsx +++ b/src/app/[locale]/programs/[slug]/ProgramPageClient.tsx @@ -3,7 +3,7 @@ import { useEffect, useState } from "react"; import Image from "next/image"; import { Program } from "../programs"; -import { Navbar, Footer, StarField, GridLines } from "@/components"; +import PageShell from "@/components/master-page/PageShell"; import { useTranslations } from "next-intl"; import Link from "next/link"; @@ -107,19 +107,12 @@ export default function ProgramPageClient({ program }: ProgramPageClientProps) { }; return ( -
- {/* Navigation */} - - - {/* Main Content with full background */} + + {/* Main Content */}
- {/* Background layers */} -
-
- - -
- {/* Hero Section */}
@@ -476,9 +469,6 @@ export default function ProgramPageClient({ program }: ProgramPageClientProps) {
- - {/* Footer */} -