import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@/components/ui/dialog'; import { FormEvent, ReactNode, useState } from 'react'; import { Form, FormField, FormFields } from '@/components/ui/form'; import { Button } from '@/components/ui/button'; import { useForm, usePage } from '@inertiajs/react'; import { LoaderCircleIcon } from 'lucide-react'; import { Label } from '@/components/ui/label'; import { Input } from '@/components/ui/input'; import InputError from '@/components/ui/input-error'; import { ServerLog } from '@/types/server-log'; import { Server } from '@/types/server'; export default function LogForm({ serverLog, children }: { serverLog?: ServerLog; children: ReactNode }) { const [open, setOpen] = useState(false); const page = usePage<{ server: Server }>(); const form = useForm<{ path: string; }>({ path: serverLog?.name || '', }); const submit = (e: FormEvent) => { e.preventDefault(); if (serverLog) { form.put(route('logs.update', { server: page.props.server.id, serverLog: serverLog.id }), { onSuccess: () => { setOpen(false); form.reset(); }, }); return; } form.post(route('logs.store', { server: page.props.server.id }), { onSuccess: () => { setOpen(false); form.reset(); }, }); }; return ( {children} {serverLog ? 'Edit' : 'Create'} remote log {serverLog ? 'Edit' : 'Create new'} remote log
form.setData('path', e.target.value)} />
); }