'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import { useMutation } from '@tanstack/react-query'; import { toast } from 'sonner'; import { AlertModal } from '@/components/modal/alert-modal'; import { Icons } from '@/components/icons'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'; import { deleteEnquiryMutation } from '../api/mutations'; import type { EnquiryListItem, EnquiryReferenceData } from '../api/types'; import { EnquiryFormSheet } from './enquiry-form-sheet'; export function EnquiryCellAction({ data, referenceData, canUpdate, canDelete }: { data: EnquiryListItem; referenceData: EnquiryReferenceData; canUpdate: boolean; canDelete: boolean; }) { const router = useRouter(); const [deleteOpen, setDeleteOpen] = useState(false); const [editOpen, setEditOpen] = useState(false); const deleteMutation = useMutation({ ...deleteEnquiryMutation, onSuccess: () => { toast.success('Enquiry deleted successfully'); setDeleteOpen(false); }, onError: (error) => toast.error(error instanceof Error ? error.message : 'Failed to delete enquiry') }); return ( <> setDeleteOpen(false)} onConfirm={() => deleteMutation.mutate(data.id)} loading={deleteMutation.isPending} /> Actions router.push(`/dashboard/crm/enquiries/${data.id}`)}> View setEditOpen(true)} disabled={!canUpdate}> Edit setDeleteOpen(true)} disabled={!canDelete}> Delete ); }