'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { deleteItem } from '@/lib/actions' import { Trash2 } from 'lucide-react' import { useToast } from './ToastContainer' interface DeleteItemButtonProps { itemId: string listId?: string variant?: 'full' | 'icon' } export default function DeleteItemButton({ itemId, listId, variant = 'full' }: DeleteItemButtonProps) { const router = useRouter() const { showToast } = useToast() const [isDeleting, setIsDeleting] = useState(false) const [showConfirm, setShowConfirm] = useState(false) const handleDelete = async (e: React.MouseEvent) => { e.preventDefault() e.stopPropagation() setIsDeleting(true) try { await deleteItem(itemId) showToast('Task deleted successfully', 'success') if (listId) { router.push(`/list/${listId}`) } else { router.refresh() } } catch (error) { console.error('Error deleting item:', error) showToast('Failed to delete task', 'error') setIsDeleting(false) setShowConfirm(false) } } const handleShowConfirm = (e: React.MouseEvent) => { e.preventDefault() e.stopPropagation() setShowConfirm(true) } const handleCancel = (e: React.MouseEvent) => { e.preventDefault() e.stopPropagation() setShowConfirm(false) } if (showConfirm) { return (
) } if (variant === 'icon') { return ( ) } return ( ) }