'use client'; import { useRouter } from 'next/navigation'; import { zodResolver } from '@hookform/resolvers/zod'; import { useAction } from 'next-safe-action/hooks'; import { useForm } from 'react-hook-form'; import { Button } from '@kit/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from '@kit/ui/form'; import { Input } from '@kit/ui/input'; import { toast } from '@kit/ui/sonner'; import { CreateCourseSchema } from '../schema/course.schema'; import { createCourse } from '../server/actions/course-actions'; interface Props { accountId: string; account: string; } export function CreateCourseForm({ accountId, account }: Props) { const router = useRouter(); const form = useForm({ resolver: zodResolver(CreateCourseSchema), defaultValues: { accountId, courseNumber: '', name: '', description: '', startDate: '', endDate: '', fee: 0, reducedFee: 0, capacity: 20, minParticipants: 5, status: 'planned' as const, registrationDeadline: '', notes: '', }, }); const { execute, isPending } = useAction(createCourse, { onSuccess: ({ data }) => { if (data?.success) { toast.success('Kurs erfolgreich erstellt'); router.push(`/home/${account}/courses`); } }, onError: ({ error }) => { toast.error(error.serverError ?? 'Fehler beim Erstellen des Kurses'); }, }); return (
); }