diff --git a/src/Components/Document/DocumentListPage.js b/src/Components/Document/DocumentListPage.js index 511afd1..53786ed 100644 --- a/src/Components/Document/DocumentListPage.js +++ b/src/Components/Document/DocumentListPage.js @@ -22,16 +22,19 @@ import "../../styles/doclist-page.scss"; const DocumentListPage = ({ perPage }) => { const size = window.innerWidth < 440; const [isMobile, setIsMobile] = useState(size); + const { appState } = useContext(AppContext); const count = useRef(null); const navigate = useNavigate(); const [showDeleteModal, setShowDeleteModal] = useState(false); const [selectedDocumentId, setSelectedDocumentId] = useState(null); - const [allDocs, setAllDocs] = useState(null); - const { appState } = useContext(AppContext); + //const [allDocs, setAllDocs] = useState(null); + const [allResponseDocs, setAllResponseDocs] = useState(null); + const [allRequestDocs, setAllRequestDocs] = useState(null); const [totalPages, setTotalPages] = useState(1); const { group } = appState; const [page, setPage] = useState(1); const [order, setOrder] = useState("parentCaseName"); + const [order2, setOrder2] = useState("parentCaseName"); const appUserId = group ? group.appUserId : null; const [isBusy, setIsBusy] = useState(false); const [selectedDocumentType, setSelectedDocumentType] = useState(); @@ -55,9 +58,9 @@ const DocumentListPage = ({ perPage }) => { }; }, []); - function getDocuments() { + function getRequests() { if (!appUserId) { - setAllDocs([]); + setAllRequestDocs([]); return; } const q = query( @@ -88,12 +91,52 @@ const DocumentListPage = ({ perPage }) => { setPage(pages); } setTotalPages(pages); - setAllDocs(data); + setAllRequestDocs(data); }); return unsub; } - useEffect(getDocuments, [appUserId, order]); + function getResponses() { + if (!appUserId) { + setAllResponseDocs([]); + return; + } + const q = query( + collection(db, "documents"), + where("ownerId", "==", appUserId), + where("docType", "!=", "interrogatories-out") + ); + const unsub = onSnapshot(q, (snapshot) => { + const data = snapshot.docs.map((doc) => ({ + ...doc.data(), + documentId: doc.id, + })); + if (order2 === "parentCaseName") { + data.sort((a, b) => { + return a.parentCaseName.toLowerCase() > b.parentCaseName.toLowerCase() + ? 1 + : -1; + }); + } else if (order2 === "parentCaseName2") { + data.sort((a, b) => { + return a.parentCaseName.toLowerCase() < b.parentCaseName.toLowerCase() + ? 1 + : -1; + }); + } + const pages = Math.ceil(data.length / perPage); + if (page > pages) { + setPage(pages); + } + setTotalPages(pages); + setAllResponseDocs(data); + }); + return unsub; + } + + useEffect(getRequests, [appUserId, order]); + + useEffect(getResponses, [appUserId]); async function deleteFromDb(documentId) { if (isBusy) { @@ -112,7 +155,8 @@ const DocumentListPage = ({ perPage }) => { } async function deleteFromStorage() { - const selectedDoc = allDocs.filter((doc) => { + //have to refactor to account for two diff lists + const selectedDoc = allRequestDocs.filter((doc) => { return doc.documentId == selectedDocumentId; }); @@ -182,7 +226,31 @@ const DocumentListPage = ({ perPage }) => {