-
feat(app-router): migrate ParVagues onto the shared shell · 8206199a
Step 3 (group 2 of 3). Moves /parvagues, /parvagues/fiche, /parvagues/live and /parvagues/live/[slug] to the App Router under a single segment layout, retiring the old per-page components/parvagues/Layout.js. - app/parvagues/layout.tsx: the ParVagues sub-shell (Syne via next/font, parvagues-root/noise-overlay wrapper, footer) inheriting the root shell. Header scroll-state and the `.reveal` IntersectionObserver are split into client leaves (ParvaguesHeader, RevealController); the latter re-arms on client-side navigation via usePathname so reveals keep working between pages. - Pages become thin server components: data fetch + metadata + segment config (revalidate=60 on /parvagues and /parvagues/live/[slug] preserved; getStaticPaths -> generateStaticParams; per-page <title> -> metadata). - /parvagues/live redirect: client useRouter.replace -> server redirect(). - /parvagues/live/[slug]: the interactive body (Prism, loupe, countdown, gallery) extracted to a client component (LiveEvent); the server page does the fs/data fetch. - /parvagues/fiche: window.print + <style jsx global> body extracted to a client component (FicheContent) behind a server metadata wrapper. - Marked the page-rendered feature components 'use client' (TourTimeline, MusicSection, VideoSection, BookingForm); Hero/BioSection/ AsSeenAt stay server. - Dropped og:type="music.musician" (not in Next's typed Metadata enum; it threw at prerender) — inherits the root "website" default; see note for Phase 2. Build green; route-smoke 14/14. Only /cosmicfest remains on the Pages Router. Co-Authored-By:Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PLN (Algolia) authored8206199a
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| FicheContent.js | Loading commit data... | |
| page.js | Loading commit data... |