import dynamicImport from "next/dynamic"; import { notFound } from "next/navigation"; import FacilitySearch from "@/app/FacilitySearch"; import { type FacilityRecord, enrichFacilities, filterFacilitiesByArea, getAvailablePlaceConfigs, getPlaceConfigFromSlug, } from "@/app/facilityData"; import { API_URL } from "@/config/constants"; const PlaceMap = dynamicImport(() => import("@/components/PlaceMap"), { ssr: false, loading: () => (

Laster kartet...

), }); export const dynamicParams = true; export const dynamic = "force-dynamic"; export async function generateStaticParams() { return getAvailablePlaceConfigs().map((slug) => ({ slug })); } export default async function PlacePage({ params }: { params: Promise<{ slug: string }> }) { const { slug } = await params; const place = getPlaceConfigFromSlug(slug); if (!place) { notFound(); } let facilities: FacilityRecord[] = []; try { const res = await fetch(`${API_URL}/facilities`, { next: { revalidate: 0 }, cache: "no-store", }); if (!res.ok) { throw new Error(`API returnerte status ${res.status}`); } facilities = await res.json(); } catch (error) { console.error("Kritisk feil ved henting av sted-data:", error); facilities = []; } const safeData = Array.isArray(facilities) ? facilities : []; const facilitiesInPlace = filterFacilitiesByArea(enrichFacilities(safeData), place.areaFilter); return (

Steder

{place.title}

{place.intro}

{facilitiesInPlace.length} anlegg Kart og liste i samme visning
); }