import { useState } from 'react' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog' import { useAddDisk } from '@/hooks/useProxmox' import type { ProxmoxVM, AddDiskConfig } from '@/types/proxmox' interface AddDiskDialogProps { open: boolean onOpenChange: (open: boolean) => void vm: ProxmoxVM } export function AddDiskDialog({ open, onOpenChange, vm }: AddDiskDialogProps) { const [storage, setStorage] = useState('local-lvm') const [size, setSize] = useState('32') const [busType, setBusType] = useState('scsi') const addDisk = useAddDisk() const handleSubmit = (e: React.FormEvent) => { e.preventDefault() const sizeBytes = parseFloat(size) * 1024 * 1024 * 1024 addDisk.mutate( { node: vm.node, vmid: vm.vmid, vmType: vm.type, config: { storage, size: sizeBytes, busType }, }, { onSuccess: () => { onOpenChange(false) setStorage('local-lvm') setSize('32') setBusType('scsi') }, }, ) } return ( Add Disk Add a new disk to {vm.name} (VMID {vm.vmid})
setStorage(e.target.value)} placeholder="local-lvm" required />
setSize(e.target.value)} placeholder="32" required />
{addDisk.isError && (

Failed to add disk. Please try again.

)}
) }