"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { useNewsletterSignupMutation } from "@marketing/home/lib/api"; import { Alert, AlertDescription, AlertTitle } from "@ui/components/alert"; import { Button } from "@ui/components/button"; import { Input } from "@ui/components/input"; import { CheckCircleIcon, KeyIcon } from "lucide-react"; import { useTranslations } from "next-intl"; import { useForm } from "react-hook-form"; import * as z from "zod"; const formSchema = z.object({ email: z.string().email(), }); type FormValues = z.infer; export function Newsletter() { const t = useTranslations(); const newsletterSignupMutation = useNewsletterSignupMutation(); const form = useForm({ resolver: zodResolver(formSchema), }); const onSubmit = form.handleSubmit(async ({ email }) => { try { await newsletterSignupMutation.mutateAsync({ email }); } catch { form.setError("email", { message: t("newsletter.hints.error.message"), }); } }); return (

{t("newsletter.title")}

{t("newsletter.subtitle")}

{form.formState.isSubmitSuccessful ? ( {t("newsletter.hints.success.title")} {t("newsletter.hints.success.message")} ) : (
{form.formState.errors.email && (

{form.formState.errors.email.message}

)}
)}
); }