From 5b6445b57118f8fa5850b69b1623f60e9f0c0609 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 26 Jun 2026 21:34:30 +0000 Subject: [PATCH] =?UTF-8?q?En-t=C3=AAte/pied=20de=20page=20partag=C3=A9s?= =?UTF-8?q?=20et=20coh=C3=A9rents=20+=20retrait=20du=20bloc=20m=C3=A9tiers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Menu identique sur toutes les pages publiques (Accueil, Annuaire, Promotions, L'association, Espace adhérent) via SiteHeader/SiteFooter : on peut toujours revenir à l'accueil depuis l'annuaire et inversement (page courante en gras). - Retire la section « Parcourir par métier » de la page d'accueil. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01XwfhYHzC9hQWPDnQ2p53GL --- src/app/adherents/[id]/page.tsx | 31 +------- src/app/annuaire/page.tsx | 51 +------------ src/app/page.tsx | 125 ++------------------------------ src/components/SiteFooter.tsx | 23 ++++++ src/components/SiteHeader.tsx | 64 ++++++++++++++++ 5 files changed, 101 insertions(+), 193 deletions(-) create mode 100644 src/components/SiteFooter.tsx create mode 100644 src/components/SiteHeader.tsx diff --git a/src/app/adherents/[id]/page.tsx b/src/app/adherents/[id]/page.tsx index cf21bcc..96702f3 100644 --- a/src/app/adherents/[id]/page.tsx +++ b/src/app/adherents/[id]/page.tsx @@ -2,6 +2,8 @@ import Link from "next/link"; import { notFound } from "next/navigation"; import type { Metadata } from "next"; import { Sparkle } from "@/components/Sparkle"; +import { SiteHeader } from "@/components/SiteHeader"; +import { SiteFooter } from "@/components/SiteFooter"; import { getMemberLivePromotions, getPublicMember } from "@/lib/queries"; export const dynamic = "force-dynamic"; @@ -81,20 +83,7 @@ export default async function FicheAdherentPage({ return (
- {/* header */} -
- - {/* eslint-disable-next-line @next/next/no-img-element */} - Plein R - Plein R - - -
+
{/* breadcrumb */} @@ -305,19 +294,7 @@ export default async function FicheAdherentPage({
- {/* footer */} -
-
-
- {/* eslint-disable-next-line @next/next/no-img-element */} - Plein R - Plein R -
-
- contact@plein-r.fr · Bassin de Pompey
Réseau · Rencontre · Réussite -
-
-
+ ); } diff --git a/src/app/annuaire/page.tsx b/src/app/annuaire/page.tsx index 1b85119..da66f5e 100644 --- a/src/app/annuaire/page.tsx +++ b/src/app/annuaire/page.tsx @@ -1,6 +1,8 @@ import Link from "next/link"; import type { Metadata } from "next"; import { Sparkle } from "@/components/Sparkle"; +import { SiteHeader } from "@/components/SiteHeader"; +import { SiteFooter } from "@/components/SiteFooter"; import { getActiveMembersWithCategory, getAllCategories, @@ -43,36 +45,7 @@ export default async function AnnuairePage({ return (
- {/* header */} -
- - {/* eslint-disable-next-line @next/next/no-img-element */} - Plein R - - Plein R - - - -
+
{/* title block */} @@ -144,23 +117,7 @@ export default async function AnnuairePage({
- {/* footer */} -
-
-
- {/* eslint-disable-next-line @next/next/no-img-element */} - Plein R - - Plein R - -
-
- contact@plein-r.fr · Bassin de Pompey -
- Réseau · Rencontre · Réussite -
-
-
+
); } diff --git a/src/app/page.tsx b/src/app/page.tsx index 67a342e..6cdb075 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,10 +1,8 @@ import Link from "next/link"; import { Sparkle } from "@/components/Sparkle"; -import { - getCategoriesWithCounts, - getHighlightedMembers, - getLivePromotions, -} from "@/lib/queries"; +import { SiteHeader } from "@/components/SiteHeader"; +import { SiteFooter } from "@/components/SiteFooter"; +import { getHighlightedMembers, getLivePromotions } from "@/lib/queries"; export const dynamic = "force-dynamic"; @@ -19,8 +17,7 @@ function badgeColor(badge: string | null) { } export default async function AccueilPage() { - const [cats, promos, highlighted] = await Promise.all([ - getCategoriesWithCounts(6), + const [promos, highlighted] = await Promise.all([ getLivePromotions(6), getHighlightedMembers(3), ]); @@ -34,53 +31,7 @@ export default async function AccueilPage() { color: "#33291D", }} > - {/* header */} -
- - {/* eslint-disable-next-line @next/next/no-img-element */} - Plein R - - Plein R - - - -
+
{/* hero */} @@ -198,51 +149,6 @@ export default async function AccueilPage() {
- {/* category tiles */} -
-

- Parcourir par métier -

-
- {cats.map((c) => ( -
- - - -
{c.label}
-
- {c.memberCount} adhérent{c.memberCount > 1 ? "s" : ""} -
-
- ))} -
-
- {/* promotions */}
- {/* footer */} -
-
-
- {/* eslint-disable-next-line @next/next/no-img-element */} - Plein R - - Plein R - -
-
- contact@plein-r.fr · Bassin de Pompey -
- Réseau · Rencontre · Réussite -
-
-
+ ); } diff --git a/src/components/SiteFooter.tsx b/src/components/SiteFooter.tsx new file mode 100644 index 0000000..03106fe --- /dev/null +++ b/src/components/SiteFooter.tsx @@ -0,0 +1,23 @@ +export function SiteFooter() { + return ( +
+
+
+ {/* eslint-disable-next-line @next/next/no-img-element */} + Plein R + + Plein R + +
+
+ contact@plein-r.fr · Bassin de Pompey +
+ Réseau · Rencontre · Réussite +
+
+
+ ); +} diff --git a/src/components/SiteHeader.tsx b/src/components/SiteHeader.tsx new file mode 100644 index 0000000..f38dd24 --- /dev/null +++ b/src/components/SiteHeader.tsx @@ -0,0 +1,64 @@ +import Link from "next/link"; + +const NAV = [ + { key: "accueil", label: "Accueil", href: "/" }, + { key: "annuaire", label: "Annuaire", href: "/annuaire" }, + { key: "promotions", label: "Promotions", href: "/#promotions" }, + { key: "association", label: "L'association", href: "#" }, +]; + +export function SiteHeader({ active }: { active?: string }) { + return ( +
+ + {/* eslint-disable-next-line @next/next/no-img-element */} + Plein R + + Plein R + + + +
+ ); +}