diff --git a/src/Components/Document/DocumentListPage.js b/src/Components/Document/DocumentListPage.js index 1edd23f..28cf26f 100644 --- a/src/Components/Document/DocumentListPage.js +++ b/src/Components/Document/DocumentListPage.js @@ -1,4 +1,4 @@ -import { useContext, useEffect, useState, useRef, useCallback } from "react"; +import { useContext, useEffect, useState, useRef } from "react"; import { useNavigate } from "react-router-dom"; import { AppContext } from "../../Hooks/useContext/appContext"; import SelectDropdown from "../../pageElements/SelectDropdown"; @@ -16,31 +16,30 @@ import { } from "firebase/firestore"; import ListPagination from "../../pageElements/ListPagination"; import ConfirmModal from "../Modals/ConfirmModal"; +import Toggle from "../../pageElements/Toggle"; 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 [respDocs, setRespDocs] = useState(null); - const [reqDocs, setReqDocs] = 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 [lowerOrder, setLowerOrder] = useState("parentCaseName"); - const [upperOrder, setUpperOrder] = useState("parentCaseName"); + 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(); const [showModal, setShowModal] = useState(false); const [verbValue, setVerbValue] = useState(1); - const apiUrl = process.env.NODE_ENV === "development" ? process.env.REACT_APP_API_DEV @@ -59,40 +58,85 @@ const DocumentListPage = ({ perPage }) => { }; }, []); - function getDocuments() { + function getRequests() { if (!appUserId) { - setAllDocs([]); + setAllRequestDocs([]); return; } const q = query( collection(db, "documents"), - where("ownerId", "==", appUserId) + where("ownerId", "==", appUserId), + where("docType", "==", "interrogatories-out") ); const unsub = onSnapshot(q, (snapshot) => { const data = snapshot.docs.map((doc) => ({ ...doc.data(), documentId: doc.id, })); - + if (order === "parentCaseName") { + data.sort((a, b) => { + return a.parentCaseName.toLowerCase() > b.parentCaseName.toLowerCase() + ? 1 + : -1; + }); + } else if (order === "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); - setAllDocs(data); - const temp = allDocs?.filter((doc) => { - return doc.docType != "interrogatories-out"; - }); - const temp2 = allDocs?.filter((doc) => { - return doc.docType === "interrogatories-out"; - }); - setRespDocs(temp); - setReqDocs(temp2); + setAllRequestDocs(data); }); return unsub; } - useEffect(getDocuments, [appUserId, respDocs, reqDocs]); + 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) { @@ -111,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; }); @@ -131,20 +176,11 @@ const DocumentListPage = ({ perPage }) => { } } - const upperDropDownOptions = [ + const dropDownOptions = [ { label: "Associated case name a - z", value: "parentCaseName" }, { label: "Associated case name z - a", value: "parentCaseName2" }, ]; - const lowerDropDownOptions = [ - { label: "Associated case name a - z", value: "parentCaseName" }, - { label: "Associated case name z - a", value: "parentCaseName2" }, - ]; - - const handleUpperSort = () => { - console.log("handleUpperSort"); - }; - function handleNavigate( documentId, responseGenerations, @@ -190,68 +226,26 @@ const DocumentListPage = ({ perPage }) => {
- Novos -
-Min
Max