import { router } from '@inertiajs/react'; import { useState } from 'react'; import { toast } from 'sonner'; import purchaseRoutes from '@/routes/purchase'; import type { Purchase } from '@/types'; export function usePurchaseIndex() { const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false); const [isBulkDeleteDialogOpen, setIsBulkDeleteDialogOpen] = useState(false); const [purchaseToDelete, setPurchaseToDelete] = useState(null); const [rowsToDelete, setRowsToDelete] = useState([]); const [rowSelection, setRowSelection] = useState({}); const onDelete = (purchase: Purchase) => { setPurchaseToDelete(purchase); setIsDeleteDialogOpen(true); }; const confirmDelete = () => { if (purchaseToDelete) { router.delete(purchaseRoutes.destroy(purchaseToDelete.id).url, { onSuccess: (response: any) => { const flash = response.props.flash; if (flash?.error) { toast.error(flash.error); } else if (flash?.success) { toast.success(flash.success); } setIsDeleteDialogOpen(false); setPurchaseToDelete(null); setRowSelection({}); }, }); } }; const confirmBulkDelete = () => { router.post(purchaseRoutes.bulkDestroy().url, { ids: rowsToDelete.map((row: any) => row.id), _method: 'DELETE' }, { onSuccess: (response: any) => { const flash = response.props.flash; if (flash?.error) { toast.error(flash.error); } else if (flash?.success) { toast.success(flash.success); } setIsBulkDeleteDialogOpen(false); setRowsToDelete([]); setRowSelection({}); }, }); }; return { isDeleteDialogOpen, isBulkDeleteDialogOpen, purchaseToDelete, rowsToDelete, rowSelection, setRowSelection, setRowsToDelete, setIsDeleteDialogOpen, setIsBulkDeleteDialogOpen, onDelete, confirmDelete, confirmBulkDelete, }; }