import React, { FormEvent, ReactNode, useState } from 'react'; import { useForm, usePage } from '@inertiajs/react'; import { Server } from '@/types/server'; import { SharedData } from '@/types'; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@/components/ui/dialog'; import { Form, FormField, FormFields } from '@/components/ui/form'; import { Label } from '@/components/ui/label'; import InputError from '@/components/ui/input-error'; import { Button } from '@/components/ui/button'; import { LoaderCircleIcon } from 'lucide-react'; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; export default function InstallService({ name, children }: { name?: string; children: ReactNode }) { const page = usePage< { server: Server; } & SharedData >(); const [open, setOpen] = useState(false); const form = useForm<{ type: string; name: string; version: string; }>({ type: '', name: name ?? '', version: '', }); const submit = (e: FormEvent) => { e.preventDefault(); form.post(route('services.store', { server: page.props.server.id }), { onSuccess: () => { setOpen(false); form.reset(); }, }); }; return ( {children} Install {name ?? 'service'} Install new {name ?? 'service'}
{/*service*/} {!name && ( )} {/*version*/}
); }