Files
mintel.me/apps/web/src/actions/contact.ts
Marc Mintel 2097b571f3
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 1m9s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🏗️ Build (push) Failing after 30m21s
Build & Deploy / 🧪 QA (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 4s
feat(web): streamline contact form and integrate identity fields
2026-04-07 23:08:04 +02:00

72 lines
1.8 KiB
TypeScript

"use server";
import { sendEmail } from "../lib/mail/mailer";
import {
getInquiryEmailHtml,
getConfirmationEmailHtml,
} from "../components/ContactForm/EmailTemplates";
import { getPayload } from "payload";
import configPromise from "@payload-config";
export async function sendContactInquiry(data: {
name: string;
email: string;
phone?: string;
role?: string;
companyName: string;
projectType: string;
deadline?: string;
message: string;
isFreeText: boolean;
config?: any;
}) {
try {
// 1. Save to Payload CMS (Replaces Directus)
const payload = await getPayload({ config: configPromise });
await payload.create({
collection: "inquiries",
data: {
name: data.name,
email: data.email,
phone: data.phone,
role: data.role,
companyName: data.companyName,
projectType: data.projectType,
deadline: data.deadline,
message: data.message,
isFreeText: data.isFreeText,
config: data.config || null,
},
});
// 2. Send Inquiry to Marc
const inquiryResult = await sendEmail({
subject: `[PROJEKT] ${data.isFreeText ? "DIREKTANFRAGE" : "KONFIGURATION"}: ${data.companyName || data.name}`,
html: getInquiryEmailHtml(data),
replyTo: data.email,
});
if (!inquiryResult.success) {
throw new Error(inquiryResult.error);
}
// 2. Send Confirmation to Customer
await sendEmail({
to: data.email,
subject: `Kopie deiner Anfrage: ${data.companyName || "mintel.me"}`,
html: getConfirmationEmailHtml(data),
});
return { success: true };
} catch (error) {
console.error("Server Action Error:", error);
return {
success: false,
error:
error instanceof Error
? error.message
: "Unknown error during submission",
};
}
}