import { graphql } from "@/gql"; import { EventFragment } from "@/lib/event"; import { NewsFragment } from "@/lib/news"; import { HomeFragment } from "@/gql/graphql"; import { getClient } from "@/app/client"; import { FeaturedEvents } from "@/components/events/FeaturedEvents"; import { NewsList } from "@/components/news/NewsList"; import { UpcomingEvents } from "@/components/events/UpcomingEvents"; import { Pig } from "@/components/general/Pig"; import Link from "next/link"; import Icon from "@/components/general/Icon"; import { SectionHeader } from "@/components/general/SectionHeader"; const HomeFragmentDefinition = graphql(` fragment Home on HomePage { ... on HomePage { featuredEvents { id } } } `); export default async function Home() { const homeQuery = graphql(` query home { events: eventIndex { ... on EventIndex { futureEvents { ... on EventPage { ...Event } } } } home: page(contentType: "home.HomePage", urlPath: "/home/") { ... on HomePage { ...Home } } news: pages(contentType: "news.newsPage", order: "-first_published_at", limit: 4) { ... on NewsPage { ...News } } } `); const { data, error } = await getClient().query(homeQuery, {}); const home = (data?.home ?? []) as HomeFragment; const events = (data?.events?.futureEvents ?? []) as EventFragment[]; const news = (data?.news ?? []) as NewsFragment[]; const featuredEventIds = home.featuredEvents.map((x) => x.id); const featuredEvents = [ ...events.filter((x) => featuredEventIds.includes(x.id)), ...events.filter((x) => !featuredEventIds.includes(x.id)), ]; return (

Skal du besøke Chateau Neuf?

Vi hjelper deg med å finne frem, og sørger for at du har en fin opplevelse.

Adresse og adkomst Billetter Åpningstider
); }