import { Backup } from '@/types/backup'; import { BackupFile } from '@/types/backup-file'; import { useForm } from '@inertiajs/react'; import { FormEvent, ReactNode, useState } from 'react'; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { LoaderCircleIcon } from 'lucide-react'; import { Form, FormField, FormFields } from '@/components/ui/form'; import { Label } from '@/components/ui/label'; import DatabaseSelect from '@/pages/database-users/components/database-select'; import InputError from '@/components/ui/input-error'; export default function RestoreBackup({ backup, file, onBackupRestored, children, }: { backup: Backup; file: BackupFile; onBackupRestored?: () => void; children: ReactNode; }) { const [open, setOpen] = useState(false); const form = useForm({ database: '', }); const submit = (e: FormEvent) => { e.preventDefault(); form.post( route('backup-files.restore', { server: backup.server_id, backup: backup.id, backupFile: file.id, }), { onSuccess: () => { setOpen(false); if (onBackupRestored) { onBackupRestored(); } }, }, ); }; return ( {children} Restore backup Restore backup
form.setData('database', value)} />
); }