import { useRefetchActive } from '@/hooks/useRefetchActive'; import { pushModal, showConfirm } from '@/modals'; import type { IClientWithProject } from '@/types'; import { api } from '@/utils/api'; import { clipboard } from '@/utils/clipboard'; import { MoreHorizontal } from 'lucide-react'; import { Button } from '../ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from '../ui/dropdown-menu'; import { toast } from '../ui/use-toast'; export function ClientActions({ id }: IClientWithProject) { const refetch = useRefetchActive(); const deletion = api.client.remove.useMutation({ onSuccess() { toast({ title: 'Success', description: 'Client revoked, incoming requests will be rejected.', }); refetch(); }, }); return ( Actions clipboard(id)}> Copy client ID { pushModal('EditClient', { id }); }} > Edit { showConfirm({ title: 'Revoke client', text: 'Are you sure you want to revoke this client? This action cannot be undone.', onConfirm() { deletion.mutate({ id, }); }, }); }} > Revoke ); }