import { Service } from '@/types/service'; import React, { FormEvent, useState } from 'react'; import { useForm, usePage } from '@inertiajs/react'; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@/components/ui/dialog'; import { DropdownMenuItem } from '@/components/ui/dropdown-menu'; import { Form, FormField, FormFields } from '@/components/ui/form'; import { Button } from '@/components/ui/button'; import { LoaderCircleIcon } from 'lucide-react'; import { Label } from '@/components/ui/label'; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { SharedData } from '@/types'; import InputError from '@/components/ui/input-error'; export default function Extensions({ service }: { service: Service }) { const page = usePage(); const [open, setOpen] = useState(false); const form = useForm<{ extension: string; version: string; }>({ extension: '', version: service.version, }); const [, php] = Object.entries(page.props.configs.service.services).filter(([key]) => key === 'php')[0] || null; const submit = (e: FormEvent) => { e.preventDefault(); form.post(route('php.install-extension', { server: service.server_id, service: service.id }), { onSuccess: () => { setOpen(false); }, }); }; if (!php) { return null; } return ( e.preventDefault()}>Extensions Install extension Install php extension
); }