import { notFound } from "next/navigation"; import { branchen } from "../data"; import { leistungen } from "../../leistungen/data"; import Image from "next/image"; import Link from "next/link"; import { ArrowRightIcon, CheckCircleIcon, } from "@phosphor-icons/react/dist/ssr"; import styles from "./page.module.css"; import StaggeredGallery from "@/components/StaggeredGallery"; import FaqSection from "@/components/faq/FaqSection"; import { branchenFaq } from "@/components/faq/faqData"; import ContactCtaSection from "@/components/contact/ContactCtaSection"; import BentoGallery from "@/components/BentoGallery"; import type { Metadata } from "next"; const siteUrl = "https://basiclean.de"; export async function generateMetadata({ params, }: { params: Promise<{ slug: string }>; }): Promise { const { slug } = await params; const branche = branchen.find((item) => item.slug === slug); if (!branche) { return { title: "Nicht gefunden", robots: { index: false, follow: false }, }; } const hasCustomSeo = Boolean(branche.metaTitle); const title = hasCustomSeo ? { absolute: branche.metaTitle as string } : branche.titleMain; const flatTitle = hasCustomSeo ? (branche.metaTitle as string) : branche.titleMain; const description = branche.metaDescription ?? branche.text; const url = `${siteUrl}/branchenloesungen/${branche.slug}`; const ogImageUrl = branche.ogImage ?? branche.image; return { title, description, alternates: { canonical: url, }, openGraph: { type: "website", siteName: "Basiclean", locale: "de_DE", title: flatTitle, description, url, images: [ { url: ogImageUrl, alt: branche.imageAlt, width: 1200, height: 628, }, ], }, twitter: { card: "summary_large_image", site: "@basiclean", title: flatTitle, description, images: [{ url: ogImageUrl, alt: branche.imageAlt }], }, }; } export function generateStaticParams() { return branchen.map((item) => ({ slug: item.slug, })); } export default async function BrancheDetail({ params, }: { params: Promise<{ slug: string }>; }) { const { slug } = await params; const branche = branchen.find((item) => item.slug === slug); const faqEntry = branchenFaq.find((item) => item.slug === branche?.faqSlug); if (!branche) { notFound(); } const empfohleneLeistungen = branche.relatedServices.slugs .map((leistungSlug) => leistungen.find((item) => item.slug === leistungSlug), ) .filter((item): item is (typeof leistungen)[number] => Boolean(item)); return (

{branche.titleMain} {branche.titleSub}

{branche.imageAlt}

{branche.text}

Jetzt Angebot anfragen

{branche.challengesSection.heading}

{branche.challengesSection.lead}

{branche.challengesSection.points.map((point) => (

{point}

))}
{empfohleneLeistungen.length > 0 && (

{branche.relatedServices.heading}

{branche.relatedServices.lead}

{empfohleneLeistungen.map((leistung) => (
{leistung.imageAlt}

{leistung.titleMain}

Mehr erfahren
))}
)}
); }