'use client' import { useState } from 'react' import { type Table } from '@tanstack/react-table' import { AlertTriangle } from 'lucide-react' import { toast } from 'sonner' import { sleep } from '@/lib/utils' import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { ConfirmDialog } from '@/components/confirm-dialog' type TaskMultiDeleteDialogProps = { open: boolean onOpenChange: (open: boolean) => void table: Table } const CONFIRM_WORD = 'DELETE' export function TasksMultiDeleteDialog({ open, onOpenChange, table, }: TaskMultiDeleteDialogProps) { const [value, setValue] = useState('') const selectedRows = table.getFilteredSelectedRowModel().rows const handleDelete = () => { if (value.trim() !== CONFIRM_WORD) { toast.error(`Please type "${CONFIRM_WORD}" to confirm.`) return } onOpenChange(false) toast.promise(sleep(2000), { loading: 'Deleting tasks...', success: () => { setValue('') table.resetRowSelection() return `Deleted ${selectedRows.length} ${ selectedRows.length > 1 ? 'tasks' : 'task' }` }, error: 'Error', }) } return ( {' '} Delete {selectedRows.length}{' '} {selectedRows.length > 1 ? 'tasks' : 'task'} } desc={

Are you sure you want to delete the selected tasks?
This action cannot be undone.

Warning! Please be careful, this operation can not be rolled back.
} confirmText='Delete' destructive /> ) }