import React, { useState } from "react"; import { useDeletePurchaseInvoice, usePurchasesList, } from "../../hooks/usePurchase"; import { ADD_DELIVERY_CHALLAN, DELETEPURCHASE_INVOICE, ITEMS_PER_PAGE, } from "../../utils/constants"; import Pagination from "../common/Pagination"; import { PurchaseColumn } from "./Purchasetable"; import { SpinnerLoader } from "../common/Loader"; import { useDebounce } from "../../utils/appUtils"; import { usePurchaseContext } from "../../pages/purchase/PurchasePage"; import ConfirmModal from "../common/ConfirmModal"; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; import { DropdownItem, getPurchaseActions } from "./PurchaseActions"; const PurchaseList = ({ searchString, isActive }) => { const { setViewPurchase, setManagePurchase, setChallan, setAddPayment } = usePurchaseContext(); const [currentPage, setCurrentPage] = useState(1); const { mutate: DeletePurchaseInvoice, isPending } = useDeletePurchaseInvoice(); const [IsDeleteModalOpen, setIsDeleteModalOpen] = useState(false); const [deletingId, setDeletingId] = useState(null); const canAddChallan = useHasUserPermission(ADD_DELIVERY_CHALLAN); const canDelete = useHasUserPermission(DELETEPURCHASE_INVOICE); const debounceSearch = useDebounce(searchString, 300); const { data, isLoading } = usePurchasesList( ITEMS_PER_PAGE, currentPage, // true, !isActive, {}, debounceSearch ); const paginate = (page) => { if (page >= 1 && page <= (data?.totalPages ?? 1)) { setCurrentPage(page); } }; const visibleColumns = PurchaseColumn.filter((col) => !col.hidden); const handleDeleteRestore = (id) => { DeletePurchaseInvoice( { id, isActive: isActive }, // delete if active, restore if deleted { onSettled: () => { setDeletingId(null); setIsDeleteModalOpen(false); }, } ); }; return ( <> {IsDeleteModalOpen && ( setIsDeleteModalOpen(false)} loading={isPending} paramData={deletingId} /> )}
{visibleColumns.map((col) => ( ))} {/* LOADING */} {isLoading && ( )} {!isLoading && data?.data?.length === 0 && ( )} {!isLoading && data?.data?.map((item, index) => ( {visibleColumns.map((col) => ( ))} ))}
{col.label}
Action
No Data Found
setViewPurchase({ isOpen: true, purchaseId: item.id, }) } > {col.render ? col.render(item) : item[col.key] || "NA"}
    {getPurchaseActions({ item, isActive, canDelete, canAddChallan, setViewPurchase, setManagePurchase, setDeletingId, setIsDeleteModalOpen, setChallan, setAddPayment, }).map((action) => ( ))}
{data?.data?.length > 0 && ( )}
); }; export default PurchaseList;