import Blocks from "@/components/blocks"; import { fetchSanityPageBySlug, fetchSanitySettings, fetchSanityFaqs, fetchSanityServices, } from "@/sanity/lib/fetch"; import { generatePageMetadata } from "@/sanity/lib/metadata"; import { ContactView } from "@/components/templates"; import { getDynamicFetchOptions, sanityFetchMetadata, type DynamicFetchOptions, } from "@/sanity/lib/live"; import { PAGE_QUERY_RESULT } from "@/sanity.types"; import { PAGE_QUERY } from "@/sanity/queries/page"; import { draftMode } from "next/headers"; import { Suspense } from "react"; function PageFallback() { return (
); } export async function generateMetadata() { try { const { perspective } = await getDynamicFetchOptions(); const { data: page } = (await sanityFetchMetadata({ query: PAGE_QUERY, params: { slug: "contact" }, perspective, })) as { data: PAGE_QUERY_RESULT }; if (page) { return generatePageMetadata({ page, slug: "contact" }); } } catch (err) { // Ignore when offline or unconfigured } return { title: "Connect with Senior Advisory | Vietnam Wedding Guide", description: "Schedule an independent destination wedding consultation or vendor contract review with Nhi Võ. 100% impartial advice for couples and luxury hospitality brands.", }; } export default async function ContactPage() { const { isEnabled: isDraftMode } = await draftMode(); if (isDraftMode) { return ( }> ); } return ; } async function DynamicContactPage() { const { perspective, stega } = await getDynamicFetchOptions(); return ; } async function CachedContactPage({ perspective, stega }: DynamicFetchOptions) { const [page, settings, faqs, services] = await Promise.all([ fetchSanityPageBySlug({ slug: "contact", perspective, stega, }).catch(() => null), fetchSanitySettings({ perspective, stega, }).catch(() => null), fetchSanityFaqs({ perspective, stega, }).catch(() => []), fetchSanityServices({ perspective, stega, }).catch(() => []), ]); if (page?.blocks && page.blocks.length > 0) { return ( ); } return ; }