import { useState } from 'react'; import { Purchase } from '@/types'; import { router } from '@inertiajs/react'; import purchaseRoutes from '@/routes/purchase'; import { toast } from 'sonner'; 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) => { toast.success(response.props.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) => { toast.success(response.props.flash.success); setIsBulkDeleteDialogOpen(false); setRowsToDelete([]); setRowSelection({}); }, }); }; return { isDeleteDialogOpen, isBulkDeleteDialogOpen, purchaseToDelete, rowsToDelete, rowSelection, setRowSelection, setRowsToDelete, setIsDeleteDialogOpen, setIsBulkDeleteDialogOpen, onDelete, confirmDelete, confirmBulkDelete, }; }