import { WeddingInvite } from "@/components/invite/wedding-invite" import { getInvitationInteractions } from "@/lib/db/queries/interactions" import { getInvitationByToken } from "@/lib/db/queries/invitations" import { getPhotoUploadByInvitationId } from "@/lib/db/queries/uploads" import { getGuestDictionary } from "@/lib/i18n/get-dictionary" import { isSupportedLanguage } from "@/lib/i18n/config" import { getInvitePageContent } from "@/lib/i18n/invite-page/content" import { isRsvpClosed } from "@/lib/rsvp-deadline" import { submitRsvpAction } from "./actions" export const dynamic = "force-dynamic" export default async function InvitePage({ params, searchParams, }: { params: Promise<{ token: string }> searchParams: Promise<{ submitted?: string; error?: string }> }) { const [{ token }, { submitted, error }] = await Promise.all([params, searchParams]) const detail = await getInvitationByToken(token) const dictionary = getGuestDictionary(detail?.invitation.language ?? "en") if (!detail) { return

{dictionary.hero.eyebrow}

{dictionary.invalid.title}

{dictionary.invalid.description}

} const language = isSupportedLanguage(detail.invitation.language) ? detail.invitation.language : "en" const [interactions, photoUpload] = await Promise.all([ getInvitationInteractions(detail.invitation.id), getPhotoUploadByInvitationId(detail.invitation.id), ]) return }