'use client'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; import { Button } from '@kit/ui/button'; import { Input } from '@kit/ui/input'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@kit/ui/form'; import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { toast } from '@kit/ui/sonner'; import { CreateNewsletterSchema } from '../schema/newsletter.schema'; import { createNewsletter } from '../server/actions/newsletter-actions'; interface Props { accountId: string; account: string; } export function CreateNewsletterForm({ accountId, account }: Props) { const router = useRouter(); const form = useForm({ resolver: zodResolver(CreateNewsletterSchema), defaultValues: { accountId, subject: '', bodyHtml: '', bodyText: '', scheduledAt: '', }, }); const { execute, isPending } = useAction(createNewsletter, { onSuccess: ({ data }) => { if (data?.success) { toast.success('Newsletter erfolgreich erstellt'); router.push(`/home/${account}/newsletter`); } }, onError: ({ error }) => { toast.error(error.serverError ?? 'Fehler beim Erstellen des Newsletters'); }, }); return (
execute(data))} className="space-y-6"> Newsletter-Inhalt ( Betreff * )} /> ( Inhalt (HTML) *