import type { Metadata } from "next"; import { PageHeader } from "@/components/PageHeader"; import { Section } from "@/components/Section"; import { ContactForm } from "@/components/ContactForm"; import { ImagePlaceholder } from "@/components/ImagePlaceholder"; import { Reveal } from "@/components/Reveal"; import { getContactGlobal, getSEOSettingsGlobal } from "@/lib/payload/globals"; import { resolveSeo } from "@/lib/seo/resolve"; import { buildMetadata } from "@/lib/seo/metadata"; import { getSiteUrl } from "@/lib/seo/config"; import { JsonLd, webPageJsonLd } from "@/lib/seo/jsonld"; import { siteConfig } from "@/lib/site"; export const dynamic = "force-dynamic"; const FALLBACK_DESCRIPTION = "Ich freue mich, von dir zu hören."; export async function generateMetadata(): Promise { const [contact, seoSettings] = await Promise.all([getContactGlobal(), getSEOSettingsGlobal()]); const resolved = resolveSeo({ seo: contact.seo, fallbackTitle: `Kontakt – ${siteConfig.name}`, fallbackDescription: () => contact.lead || seoSettings.defaultDescription || FALLBACK_DESCRIPTION, defaultOgImage: seoSettings.defaultOgImage, }); return buildMetadata({ title: resolved.title, description: resolved.description, path: "/kontakt", ogImageUrl: resolved.ogImageUrl, keywords: resolved.keywords, }); } export default async function KontaktPage() { const contact = await getContactGlobal(); const siteUrl = await getSiteUrl(); return ( <>

E-Mail {contact.email}

{contact.phone && (

Telefon {contact.phone}

)} {contact.region && (

Region {contact.region}

)}
); }