diff --git a/package.json b/package.json index 6725b1b..3189e1b 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "build": "next build", "start": "next start", "lint": "eslint", - "test": "node --experimental-strip-types --test src/i18n/routes.test.ts src/lib/contact/schema.test.ts" + "test": "node --experimental-strip-types --test src/i18n/routes.test.ts src/lib/contact/schema.test.ts src/lib/contact/deliver.test.ts" }, "dependencies": { "next": "16.3.1", diff --git a/src/app/[lang]/contact/page.tsx b/src/app/[lang]/contact/page.tsx index 10e23dc..cf6aa75 100644 --- a/src/app/[lang]/contact/page.tsx +++ b/src/app/[lang]/contact/page.tsx @@ -1,8 +1,12 @@ import { ContactForm } from "@/components/contact-form"; +import { isOfferId } from "@/content/offer-ids"; import { getOffers } from "@/content/offers"; +import { site } from "@/content/site"; import { getDictionary } from "@/i18n/dictionaries"; +import { publicPath } from "@/i18n/routes"; import { pageMetadata } from "@/lib/metadata"; import { requireLocale } from "@/lib/locale"; +import Link from "next/link"; export async function generateMetadata({ params }: PageProps<"/[lang]/contact">) { const locale = requireLocale((await params).lang); @@ -10,10 +14,16 @@ export async function generateMetadata({ params }: PageProps<"/[lang]/contact">) return pageMetadata(locale, "contact", dict.contact.title, dict.contact.lede); } -export default async function ContactPage({ params }: PageProps<"/[lang]/contact">) { +export default async function ContactPage({ + params, + searchParams, +}: PageProps<"/[lang]/contact">) { const locale = requireLocale((await params).lang); const dict = getDictionary(locale); const offers = getOffers(locale); + const topicParam = (await searchParams).topic; + const topicValue = Array.isArray(topicParam) ? topicParam[0] : topicParam; + const defaultTopic = topicValue && isOfferId(topicValue) ? topicValue : undefined; return (
@@ -21,17 +31,29 @@ export default async function ContactPage({ params }: PageProps<"/[lang]/contact

{dict.contact.kicker}

{dict.contact.title}

{dict.contact.lede}

+

{dict.contact.reply}

+

+ + {dict.contact.emailDirect}: {site.email} + +

- +