import FacilitySearch from "@/app/FacilitySearch"; import type { FacilityRecord } from "@/app/facilityData"; import { fetchPublicFacilities } from "@/app/publicFacilities"; import { resolveSitePageSeo } from "@/app/pageSeo"; import { createBreadcrumbJsonLd, createCollectionPageJsonLd, createItemListJsonLd, createPageMetadata, } from "@/app/seo"; export const revalidate = 900; export const dynamic = "force-dynamic"; const fallbackPageTitle = "Alle norske golfbaner: Finn din neste runde på gress | TeeOff.no"; const fallbackPageDescription = "Planlegg din neste golfrunde. Se komplett oversikt over alle norske golfbaner med oppdatert banestatus, greenfee-priser og kart på TeeOff.no."; export async function generateMetadata() { const seo = await resolveSitePageSeo("golfbaner", fallbackPageTitle, fallbackPageDescription); const metadata = createPageMetadata({ title: seo.title, description: seo.description, path: "/golfbaner", }); return { ...metadata, alternates: { canonical: "/", }, }; } export default async function GolfCoursesIndexPage() { const seo = await resolveSitePageSeo("golfbaner", fallbackPageTitle, fallbackPageDescription); const safeData = await fetchPublicFacilities("search", revalidate); const collectionJsonLd = createCollectionPageJsonLd({ name: seo.title, description: seo.description, path: "/golfbaner", }); const itemListJsonLd = createItemListJsonLd({ name: seo.title, path: "/golfbaner", items: safeData .filter((facility) => facility?.slug && facility?.name) .map((facility) => ({ name: facility.name, path: `/golfbaner/${facility.slug}`, description: facility.description, })), }); const breadcrumbJsonLd = createBreadcrumbJsonLd([ { name: "Hjem", path: "/" }, { name: "Golfbaner", path: "/golfbaner" }, ]); return ( <>