import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@/components/ui/dialog'; import { FormEventHandler, ReactNode, useState } from 'react'; import { Button } from '@/components/ui/button'; import { LoaderCircle } from 'lucide-react'; import { useForm } from '@inertiajs/react'; import { Form, FormField, FormFields } from '@/components/ui/form'; import { Label } from '@/components/ui/label'; import { Input } from '@/components/ui/input'; import InputError from '@/components/ui/input-error'; import { Project } from '@/types/project'; import FormSuccessful from '@/components/form-successful'; export default function ProjectForm({ project, children }: { project?: Project; children: ReactNode }) { const [open, setOpen] = useState(false); const form = useForm({ name: project?.name || '', }); const submit: FormEventHandler = (e) => { e.preventDefault(); if (project) { form.patch(route('projects.update', project.id)); return; } form.post(route('projects.store'), { onSuccess() { setOpen(false); }, }); }; return ( {children} {project ? 'Edit Project' : 'Create Project'} {project ? 'Edit the project details.' : 'Create a new project.'}
form.setData('name', e.target.value)} />
); }