diff --git a/app/api/admin/site-images/route.ts b/app/api/admin/site-images/route.ts index 81c4d05..ac0cbc6 100644 --- a/app/api/admin/site-images/route.ts +++ b/app/api/admin/site-images/route.ts @@ -1,8 +1,17 @@ import { NextRequest, NextResponse } from "next/server"; +import { revalidatePath } from "next/cache"; import { createClient, createAdminClient } from "@/lib/supabase/server"; import { DEFAULT_IMAGES, updateSiteImage } from "@/lib/site-images"; import type { Profile } from "@/types/database.types"; +/** Pages à invalider selon le préfixe de la clé image */ +function getPathsToRevalidate(key: string): string[] { + if (key.startsWith("macon_")) return ["/macon"]; + if (key.startsWith("paysagiste_")) return ["/paysagiste"]; + // Clés de la page d'accueil (hero_portrait, about_photo, process_*, demo_*) + return ["/"]; +} + interface SiteImageRow { key: string; url: string; @@ -119,5 +128,11 @@ export async function PUT(request: NextRequest) { ); } + // Invalider immédiatement le cache Next.js des pages concernées + const paths = getPathsToRevalidate(key); + for (const path of paths) { + revalidatePath(path); + } + return NextResponse.json({ success: true }); } diff --git a/app/macon/page.tsx b/app/macon/page.tsx index 8e82548..fc1626d 100644 --- a/app/macon/page.tsx +++ b/app/macon/page.tsx @@ -3,6 +3,8 @@ import Link from "next/link"; import MaconClient from "./MaconClient"; import { getSiteImages } from "@/lib/site-images"; +export const revalidate = 60; + export const metadata: Metadata = { title: "Ma\u00e7onnerie & Extension de Maison \u00e0 Orchies, Cysoing, Saint-Amand-les-Eaux | Artisan Ma\u00e7on Nord (59)", diff --git a/app/paysagiste/page.tsx b/app/paysagiste/page.tsx index 2a13f6e..0580c63 100644 --- a/app/paysagiste/page.tsx +++ b/app/paysagiste/page.tsx @@ -4,6 +4,8 @@ import Button from "@/components/ui/Button"; import PaysagisteClient from "./PaysagisteClient"; import { getSiteImages } from "@/lib/site-images"; +export const revalidate = 60; + export const metadata: Metadata = { title: "Démo Site Paysagiste - Conception & Entretien Espaces Verts", description: