import { useEffect, useState } from "react"; import { NonIdealState, Spinner } from "@blueprintjs/core"; import { ListWrapper, Pagination, Toolbar } from "Components/DataList"; import PDFElement from "./PDFElement"; import { usePagination } from "@hooks"; import { cleanLibraryPDF, identifyPDFConnections } from "./helpers"; import { CustomClasses } from "../../../../constants"; import { ZCleanItemPDF, ZLibraryContents } from "Types/transforms"; function cleanLibraryData_PDF(itemList: ZLibraryContents): Promise{ return new Promise((resolve) => { setTimeout(() => { const data = itemList.pdfs .map(pdf => { const itemKey = pdf.data.key; const parentKey = pdf.data.parentItem; const location = pdf.library.type + "s/" + pdf.library.id; const { parent, annotations } = identifyPDFConnections(itemKey, parentKey, location, { items: itemList.items, notes: itemList.notes }); return cleanLibraryPDF(pdf, parent, annotations); }); resolve(data); }, 0); }); } const itemsPerPage = 20; type QueryPDFsListProps = { items: ZCleanItemPDF[] }; function QueryPDFsList({ items }: QueryPDFsListProps){ const { currentPage, pageLimits, setCurrentPage } = usePagination({ itemsPerPage }); useEffect(() => { setCurrentPage(1); }, [items, setCurrentPage]); return
{items.length == 0 ? : {items .slice(...pageLimits) .map((el, i) => )} }
; } function QueryPDFs({ itemList }) { const [items, setItems] = useState(null); useEffect(() => { if(itemList){ cleanLibraryData_PDF(itemList) .then(data => { setItems(data); }); } }, [itemList]); return items == null ? : ; } export default QueryPDFs;