'use client'; import { useState, useTransition } from 'react'; import { Modal } from '@/components/ui/Modal'; import { LoadingSpinner } from '@/components/ui/LoadingSpinner'; import { deleteServerAction } from '@/lib/actions/server-management'; import { Server } from '@/lib/types/server'; interface DeleteServerModalProps { isOpen: boolean; onClose: () => void; server: Server; } export function DeleteServerModal({ isOpen, onClose, server }: DeleteServerModalProps) { const [error, setError] = useState(null); const [isPending, startTransition] = useTransition(); const handleDelete = () => { setError(null); startTransition(async () => { try { const result = await deleteServerAction(server.id); if (result.success) { onClose(); } else { setError(result.message); } } catch (err) { setError(err instanceof Error ? err.message : 'Failed to delete server'); } }); }; const handleClose = () => { if (isPending) { return; } onClose(); setError(null); }; return ( {error &&
{error}
}

Are you sure you want to delete the server "{server.name}"?

This action cannot be undone.

); }