"use client"; import { Dispatch, SetStateAction, useState } from "react"; import { deleteOrganization, deleteOrganizationalUnit, } from "@/actions/organizations/organizations"; import { DeleteIcon } from "@/components/icons"; import { Button, useToast } from "@/components/shadcn"; import { PROVIDERS_GROUP_KIND, ProvidersGroupKind, } from "@/types/providers-table"; interface DeleteOrganizationFormProps { id: string; name: string; variant: ProvidersGroupKind; setIsOpen: Dispatch>; } export function DeleteOrganizationForm({ id, name, variant, setIsOpen, }: DeleteOrganizationFormProps) { const [isLoading, setIsLoading] = useState(false); const { toast } = useToast(); const isOrg = variant === PROVIDERS_GROUP_KIND.ORGANIZATION; const entityLabel = isOrg ? "organization" : "organizational unit"; const handleDelete = async () => { setIsLoading(true); const result = isOrg ? await deleteOrganization(id) : await deleteOrganizationalUnit(id); setIsLoading(false); if (result?.errors && result.errors.length > 0) { const error = result.errors[0]; toast({ variant: "destructive", title: "Oops! Something went wrong", description: `${error.detail}`, }); } else if (result?.error) { toast({ variant: "destructive", title: "Oops! Something went wrong", description: result.error, }); } else { toast({ title: "Success!", description: `The ${entityLabel} "${name}" was removed successfully.`, }); setIsOpen(false); } }; return (
); }