import { createServiceClient } from "@/lib/supabase"; import Header from "@/components/Header"; import Hero from "@/components/Hero"; import FamilyGuardPromo from "@/components/FamilyGuardPromo"; import TaglineBanner from "@/components/TaglineBanner"; import StatsBar from "@/components/StatsBar"; import Services from "@/components/Services"; import Technologies from "@/components/Technologies"; import DataSovereignty from "@/components/DataSovereignty"; import PaperlessSection from "@/components/PaperlessSection"; import About from "@/components/About"; import Contact from "@/components/Contact"; import Footer from "@/components/Footer"; import { GalerieAnzeige } from "@/components/GalerieAnzeige"; export const dynamic = "force-dynamic"; export default async function Home() { const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL ?? ""; let hero = null, badges: { text: string }[] = [], ueberUns = null, stats: { wert: string; label: string }[] = [], galerie: { id: string; storage_path: string; alt_text: string }[] = [], kontakt = null, oeffnung: { tag: string; von: string; bis: string }[] = []; try { const db = createServiceClient(); const [ heroResult, badgesResult, ueberUnsResult, statsResult, galerieResult, kontaktResult, oeffnungResult, ] = await Promise.allSettled([ db.from("hero_content").select("*").limit(1).single(), db.from("hero_badges").select("*").order("reihenfolge"), db.from("ueber_uns_content").select("*").limit(1).single(), db.from("ueber_uns_stats").select("*").order("reihenfolge"), db.from("galerie_bilder").select("*").order("reihenfolge"), db.from("kontakt_info").select("*").limit(1).single(), db.from("kontakt_oeffnungszeiten").select("*").order("reihenfolge"), ]); hero = heroResult.status === "fulfilled" ? heroResult.value.data : null; badges = badgesResult.status === "fulfilled" ? (badgesResult.value.data ?? []) : []; ueberUns = ueberUnsResult.status === "fulfilled" ? ueberUnsResult.value.data : null; stats = statsResult.status === "fulfilled" ? (statsResult.value.data ?? []) : []; galerie = galerieResult.status === "fulfilled" ? (galerieResult.value.data ?? []) : []; kontakt = kontaktResult.status === "fulfilled" ? kontaktResult.value.data : null; oeffnung = oeffnungResult.status === "fulfilled" ? (oeffnungResult.value.data ?? []) : []; } catch { // Supabase nicht konfiguriert — Fallback-Werte greifen } const galerieBilder = galerie.map((b) => ({ id: b.id, src: `${supabaseUrl}/storage/v1/object/public/galerie-bilder/${b.storage_path}`, alt: b.alt_text, })); return (
0 ? badges.map((b) => b.text) : undefined} /> 0 ? stats : undefined} /> {galerieBilder.length > 0 && ( <>
)} 0 ? oeffnung : undefined} />
); }