import { Dialog, DialogPanel } from '@headlessui/react'; import { Loader2, Trash2 } from 'lucide-react'; import { useState } from 'react'; import { AnimatePresence, motion } from 'framer-motion'; import { ConfigModelProvider } from '@/lib/config/types'; import { toast } from 'sonner'; const DeleteProvider = ({ modelProvider, setProviders, }: { modelProvider: ConfigModelProvider; setProviders: React.Dispatch>; }) => { const [open, setOpen] = useState(false); const [loading, setLoading] = useState(false); const handleDelete = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { const res = await fetch(`/api/providers/${modelProvider.id}`, { method: 'DELETE', headers: { 'Content-Type': 'application/json', }, }); if (!res.ok) { throw new Error('Failed to delete provider'); } setProviders((prev) => { return prev.filter((p) => p.id !== modelProvider.id); }); toast.success('Provider deleted successfully.'); } catch (error) { console.error('Error deleting provider:', error); toast.error('Failed to delete provider.'); } finally { setLoading(false); } }; return ( <> {open && ( setOpen(false)} className="relative z-[60]" >

Delete provider

Are you sure you want to delete the provider " {modelProvider.name}"? This action cannot be undone.

)}
); }; export default DeleteProvider;