diff --git a/src/app/confidentialite/page.tsx b/src/app/confidentialite/page.tsx index 99f1d2a..59f0e62 100644 --- a/src/app/confidentialite/page.tsx +++ b/src/app/confidentialite/page.tsx @@ -7,6 +7,7 @@ import { } from "lucide-react"; import Link from "next/link"; +import { SiteFooter } from "@/components/site-footer"; import { SiteHeader } from "@/components/site-header"; import { getAssociationSettings } from "@/lib/services/association-settings"; @@ -143,6 +144,8 @@ export default async function PrivacyPage() { ← Retour à l'accueil + + ); } diff --git a/src/app/inscription/[token]/page.tsx b/src/app/inscription/[token]/page.tsx index 8325ee4..3663fb2 100644 --- a/src/app/inscription/[token]/page.tsx +++ b/src/app/inscription/[token]/page.tsx @@ -10,6 +10,7 @@ import { import Link from "next/link"; import { FormattedText } from "@/components/formatted-text"; +import { SiteFooter } from "@/components/site-footer"; import { SiteHeader } from "@/components/site-header"; import { VolunteerSignupForm, @@ -199,6 +200,8 @@ export default async function InscriptionPage({ + + ); } diff --git a/src/app/page.tsx b/src/app/page.tsx index 2f01c59..1f548fe 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -10,6 +10,7 @@ import { import Link from "next/link"; import { FormattedText } from "@/components/formatted-text"; +import { SiteFooter } from "@/components/site-footer"; import { SiteHeader } from "@/components/site-header"; import { getUpcomingPublishedEvents } from "@/lib/data"; import { formatDateTime } from "@/lib/dates"; @@ -336,22 +337,7 @@ export default async function HomePage() { -
-
-
- -

- {settings.associationName} — ensemble, pour nos enfants. -

-
- - Politique de confidentialité - -
-
+ ); } diff --git a/src/app/rejoindre/page.tsx b/src/app/rejoindre/page.tsx index bc33644..3e9e5d7 100644 --- a/src/app/rejoindre/page.tsx +++ b/src/app/rejoindre/page.tsx @@ -12,6 +12,7 @@ import type { Metadata } from "next"; import Link from "next/link"; import { JoinForm } from "@/components/join-form"; +import { SiteFooter } from "@/components/site-footer"; import { SiteHeader } from "@/components/site-header"; import { getAssociationSettings } from "@/lib/services/association-settings"; @@ -185,6 +186,8 @@ export default async function RejoindrePage() { + + ); } diff --git a/src/components/site-footer.tsx b/src/components/site-footer.tsx new file mode 100644 index 0000000..31d8ddf --- /dev/null +++ b/src/components/site-footer.tsx @@ -0,0 +1,40 @@ +import { Github } from "lucide-react"; +import Link from "next/link"; + +import { PROJECT_REPOSITORY_URL } from "@/lib/app-config"; +import { getAssociationSettings } from "@/lib/services/association-settings"; + +/** Pied de page commun aux écrans publics. */ +export async function SiteFooter() { + const settings = await getAssociationSettings(); + + return ( + + ); +} diff --git a/src/lib/app-config.ts b/src/lib/app-config.ts index 811b479..3c1377d 100644 --- a/src/lib/app-config.ts +++ b/src/lib/app-config.ts @@ -20,3 +20,13 @@ export const CONTACT_EMAIL = */ export const ASSOCIATION_RNA = process.env.NEXT_PUBLIC_ASSOCIATION_RNA?.trim() || ""; + +/** + * Dépôt du projet, au format `organisation/dépôt`. Même valeur que celle + * surveillée par l'indicateur de version : une instance dérivée renvoie ainsi + * vers son propre code, pas vers celui d'origine. + */ +export const PROJECT_REPOSITORY = + process.env.UPDATE_REPOSITORY?.trim() || "flocom/APEL-manager"; + +export const PROJECT_REPOSITORY_URL = `https://github.com/${PROJECT_REPOSITORY}`;