import React, { useState } from "react"; import { usePurchasesList } from "../../hooks/usePurchase"; import { 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"; const PurchaseList = ({ searchString }) => { const { setViewPurchase, setManagePurchase, setChallan } = usePurchaseContext(); const [currentPage, setCurrentPage] = useState(1); const debounceSearch = useDebounce(searchString, 300); const { data, isLoading } = usePurchasesList( ITEMS_PER_PAGE, currentPage, true, {}, debounceSearch ); const paginate = (page) => { if (page >= 1 && page <= (data?.totalPages ?? 1)) { setCurrentPage(page); } }; const visibleColumns = PurchaseColumn.filter((col) => !col.hidden); return (
{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
{col.render ? col.render(item) : item[col.key] || "NA"}
{data?.data?.length > 0 && ( )}
); }; export default PurchaseList;