From 90f044c9cbb1bf821a8946038afad64d3b592217 Mon Sep 17 00:00:00 2001 From: Benno Tielen Date: Thu, 29 Jan 2026 10:08:15 +0100 Subject: [PATCH] fix: email address as property --- src/app/(home)/kontakt/page.tsx | 1 + src/app/(home)/mithelfen/kleinanzeigen/page.tsx | 4 +++- src/app/(home)/neu-in-der-gemeinde/page.tsx | 1 + src/app/(home)/sakramente/ehe/page.tsx | 1 + src/app/(home)/sakramente/taufe/page.tsx | 1 + src/compositions/Blocks/Blocks.tsx | 1 + src/compositions/ContactForm/ContactForm.stories.tsx | 6 ++++-- src/compositions/ContactForm/ContactForm.tsx | 8 +++++--- .../ContactSection/ContactSection.stories.tsx | 3 ++- src/compositions/ContactSection/ContactSection.tsx | 5 +++-- src/pageComponents/Home/Home.tsx | 1 + src/utils/actions.ts | 5 +++-- 12 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/app/(home)/kontakt/page.tsx b/src/app/(home)/kontakt/page.tsx index 234ea5e..c0f3e0d 100644 --- a/src/app/(home)/kontakt/page.tsx +++ b/src/app/(home)/kontakt/page.tsx @@ -49,6 +49,7 @@ export default function ContactPage() { ) diff --git a/src/app/(home)/mithelfen/kleinanzeigen/page.tsx b/src/app/(home)/mithelfen/kleinanzeigen/page.tsx index b1c09c6..ff9163c 100644 --- a/src/app/(home)/mithelfen/kleinanzeigen/page.tsx +++ b/src/app/(home)/mithelfen/kleinanzeigen/page.tsx @@ -40,7 +40,9 @@ export default function Page() { + description={'Wir sind für dich da! Wenn du noch offene Fragen hast oder mehr über unsere ehrenamtlichen Möglichkeiten erfahren möchtest, schreib uns einfach. Wir freuen uns darauf, von dir zu hören!'} + toEmail={"kontakt@dreikoenige.berlin"} + /> ) } \ No newline at end of file diff --git a/src/app/(home)/neu-in-der-gemeinde/page.tsx b/src/app/(home)/neu-in-der-gemeinde/page.tsx index f2519b3..923b7db 100644 --- a/src/app/(home)/neu-in-der-gemeinde/page.tsx +++ b/src/app/(home)/neu-in-der-gemeinde/page.tsx @@ -55,6 +55,7 @@ export default function Page() { backgroundColor={'off-white'} title={'Mehr wissen?'} description={'Zögern Sie nicht und nehmen Sie Kontakt mit uns auf! Wir freuen uns über Ihre Nachricht und sind gerne für Sie da. Füllen Sie einfach das Formular aus und wir melden uns schnellstmöglich bei Ihnen zurück.'} + toEmail={"kontakt@dreikoenige.berlin"} /> ) diff --git a/src/app/(home)/sakramente/ehe/page.tsx b/src/app/(home)/sakramente/ehe/page.tsx index 2c175b2..32dafd8 100644 --- a/src/app/(home)/sakramente/ehe/page.tsx +++ b/src/app/(home)/sakramente/ehe/page.tsx @@ -56,6 +56,7 @@ export default function MarriagePage() { backgroundColor={"off-white"} title={"Bei uns heiraten?"} description={"Gerne! Wir freuen uns, wenn Sie sich für den Bund der Ehe entscheiden. Der Sakrament der Ehe ist ein besonderes Zeichen der Liebe Gottes und die Kirche bietet Ihnen einen feierlichen und würdevollen Rahmen, um sich das Ja-Wort zu geben. Sprechen Sie uns an, wir begleiten Sie gerne bei den Vorbereitungen und gestalten mit Ihnen einen unvergesslichen Traugottesdienst."} + toEmail={"kontakt@dreikoenige.berlin"} /> ) diff --git a/src/app/(home)/sakramente/taufe/page.tsx b/src/app/(home)/sakramente/taufe/page.tsx index 4de77c6..8344046 100644 --- a/src/app/(home)/sakramente/taufe/page.tsx +++ b/src/app/(home)/sakramente/taufe/page.tsx @@ -66,6 +66,7 @@ export default function BaptismPage() { backgroundColor={"off-white"} title={'Wagst du den Schritt?'} description={'Vielleicht hast du schon lange mit dem Gedanken gespielt, dich taufen zu lassen. Oder die Frage taucht gerade zum ersten Mal in dir auf. Egal, wo du stehst: Die Taufe ist ein Angebot, eine Einladung. Eine Einladung, Teil der großen Familie der Christen zu werden, Gottes Liebe zu erfahren und deinen Glauben gemeinsam mit anderen zu leben. Nimm Kontakt mit uns auf für ein Gespräch!'} + toEmail={"kontakt@dreikoenige.berlin"} /> ) diff --git a/src/compositions/Blocks/Blocks.tsx b/src/compositions/Blocks/Blocks.tsx index 4f3faf3..0005474 100644 --- a/src/compositions/Blocks/Blocks.tsx +++ b/src/compositions/Blocks/Blocks.tsx @@ -47,6 +47,7 @@ export function Blocks({ content }: BlocksProps) { key={item.id} title={item.title} description={item.description} + toEmail={item.email} backgroundColor={"off-white"} /> ) diff --git a/src/compositions/ContactForm/ContactForm.stories.tsx b/src/compositions/ContactForm/ContactForm.stories.tsx index d8eb51b..973f347 100644 --- a/src/compositions/ContactForm/ContactForm.stories.tsx +++ b/src/compositions/ContactForm/ContactForm.stories.tsx @@ -10,12 +10,14 @@ export default meta export const Default: Story = { args: { - schema: 'base' + schema: 'base', + toEmail: 'test@test.com' }, } export const Schema: Story = { args: { - schema: 'contrast' + schema: 'contrast', + toEmail: 'test@test.com' } } \ No newline at end of file diff --git a/src/compositions/ContactForm/ContactForm.tsx b/src/compositions/ContactForm/ContactForm.tsx index 69b84af..e70bf11 100644 --- a/src/compositions/ContactForm/ContactForm.tsx +++ b/src/compositions/ContactForm/ContactForm.tsx @@ -8,16 +8,18 @@ import { send } from '@/utils/actions' import { useActionState } from 'react' type ContactFormProps = { - schema?: "base" | "contrast" + schema?: "base" | "contrast", + toEmail: string } const initialState = { message: '', } -export const ContactForm = ({schema}: ContactFormProps) => { +export const ContactForm = ({schema, toEmail}: ContactFormProps) => { - const [state, formAction, pending] = useActionState(send, initialState) + const sendWithEmail = send.bind(null, toEmail); + const [state, formAction, pending] = useActionState(sendWithEmail, initialState) return (
diff --git a/src/compositions/ContactSection/ContactSection.stories.tsx b/src/compositions/ContactSection/ContactSection.stories.tsx index 7588359..9315387 100644 --- a/src/compositions/ContactSection/ContactSection.stories.tsx +++ b/src/compositions/ContactSection/ContactSection.stories.tsx @@ -11,6 +11,7 @@ export default meta export const Default: Story = { args: { title: "Kontakt", - description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vel dolor semper, consectetur augue quis, elementum tellus. Nulla ut porta lorem. Nulla posuere quam nisi, ut porttitor diam dignissim eget. Morbi imperdiet et lectus quis dapibus. Cras sollicitudin est augue, vel rhoncus massa elementum vitae. Donec sagittis pulvinar nibh ultrices tincidunt. Interdum et malesuada fames ac ante ipsum primis in faucibus.' + description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vel dolor semper, consectetur augue quis, elementum tellus. Nulla ut porta lorem. Nulla posuere quam nisi, ut porttitor diam dignissim eget. Morbi imperdiet et lectus quis dapibus. Cras sollicitudin est augue, vel rhoncus massa elementum vitae. Donec sagittis pulvinar nibh ultrices tincidunt. Interdum et malesuada fames ac ante ipsum primis in faucibus.', + toEmail: 'kontak@test.com' }, } \ No newline at end of file diff --git a/src/compositions/ContactSection/ContactSection.tsx b/src/compositions/ContactSection/ContactSection.tsx index b88787c..8606bd2 100644 --- a/src/compositions/ContactSection/ContactSection.tsx +++ b/src/compositions/ContactSection/ContactSection.tsx @@ -11,10 +11,11 @@ type ContactSectionProps = { description: string, backgroundColor?: 'off-white' schema?: 'base' | 'contrast' + toEmail: string } -export const ContactSection = ({title, description, schema, backgroundColor}: ContactSectionProps) => { +export const ContactSection = ({title, description, schema, backgroundColor, toEmail}: ContactSectionProps) => { return (
@@ -24,7 +25,7 @@ export const ContactSection = ({title, description, schema, backgroundColor}: Co - + diff --git a/src/pageComponents/Home/Home.tsx b/src/pageComponents/Home/Home.tsx index 938efae..79f22c1 100644 --- a/src/pageComponents/Home/Home.tsx +++ b/src/pageComponents/Home/Home.tsx @@ -188,6 +188,7 @@ export const Home = ({ '\n' + 'Zögern Sie nicht, uns über das Kontaktformular zu schreiben. Wir freuen uns über jede Nachricht und sind gerne für Sie da.'} schema={"base"} + toEmail={"kontakt@dreikoenige.berlin"} /> diff --git a/src/utils/actions.ts b/src/utils/actions.ts index c517467..473a8bb 100644 --- a/src/utils/actions.ts +++ b/src/utils/actions.ts @@ -7,10 +7,11 @@ import { isSpam } from '@/utils/detectSpam' /** * Send email through Resend API * + * @param toEmail * @param prevState * @param formData */ -export async function send(prevState: any, formData: FormData) { +export async function send(toEmail: string, prevState: any, formData: FormData) { const schema = z.object({ email: z.string().email(), @@ -44,7 +45,7 @@ export async function send(prevState: any, formData: FormData) { const resp = await resend.emails.send({ from: 'noreply@dreikoenige.berlin', replyTo: validatedFields.data.email, - to: 'kontakt@dreikoenige.berlin', + to: toEmail, subject: `Über Kontaktformular: ${validatedFields.data.subject}`, text: `Nachricht von ${validatedFields.data.name} (${validatedFields.data.email}): \n\n ${validatedFields.data.message}` });