Merge pull request #118 from kjannette/revert

more
This commit is contained in:
S Jannette
2024-03-05 00:06:20 -06:00
committed by GitHub
3 changed files with 56 additions and 249 deletions

View File

@@ -25,7 +25,6 @@ import "../../styles/docedit-page.scss";
const DocEditPage = () => { const DocEditPage = () => {
const { documentId, responseGenerations, caseId, documentType } = useParams(); const { documentId, responseGenerations, caseId, documentType } = useParams();
const navigate = useNavigate(); const navigate = useNavigate();
const [docType, setDocType] = useState(documentType);
const [parsedRogs, setParsedRogs] = useState(); const [parsedRogs, setParsedRogs] = useState();
const [responses, setResponses] = useState([1]); const [responses, setResponses] = useState([1]);
const [fetchedCase, setFetchedCase] = useState(); const [fetchedCase, setFetchedCase] = useState();
@@ -128,8 +127,7 @@ const DocEditPage = () => {
]; ];
/* /*
* GET document data from Firebase * GET docuement data from Firebase
*
* */ * */
useEffect(() => { useEffect(() => {
@@ -156,7 +154,7 @@ const DocEditPage = () => {
} }
// TODO: possible *BUG* sometimes sends network req to gen repsonses after first (maybe state is not updating?) // TODO: possible *BUG* sometimes sends network req to gen repsonses after first (maybe state is not updating?)
getParsedRequests(documentId, documentType); getParsedRequests(documentId, documentType);
if (responsesCreated > 2) { if (responsesCreated > 0) {
getCompletions(documentId) getCompletions(documentId)
.then((data) => { .then((data) => {
const resp = data[0].responses.map((item, index) => { const resp = data[0].responses.map((item, index) => {
@@ -174,12 +172,10 @@ const DocEditPage = () => {
*/ */
useEffect(() => { useEffect(() => {
/*
if (responsesCreated > 0) { if (responsesCreated > 0) {
return; return;
} }
*/ if (responsesCreated < 1) {
if (responsesCreated == 1) {
if (documentType == "combined-numbered") { if (documentType == "combined-numbered") {
try { try {
const res = generateResponsesCombined(documentId); const res = generateResponsesCombined(documentId);
@@ -217,12 +213,6 @@ const DocEditPage = () => {
const unsub = onSnapshot(docRef, (snapshot) => { const unsub = onSnapshot(docRef, (snapshot) => {
if (snapshot.exists() && snapshot.data().ownerId === appUserId) { if (snapshot.exists() && snapshot.data().ownerId === appUserId) {
setDocument({ ...snapshot.data(), documentId: snapshot.id }); setDocument({ ...snapshot.data(), documentId: snapshot.id });
if (
docType === undefined ||
(docType === null && document.length > 1)
) {
setDocType(document.docType);
}
} else { } else {
setDocument(null); setDocument(null);
} }
@@ -265,12 +255,15 @@ const DocEditPage = () => {
if (responsesCreated > 0) { if (responsesCreated > 0) {
return; return;
} }
const docType = String(documentType); const docType = String(documentType);
let mode; let mode;
//TODO: remove isRequests var if not goign to use //TODO: remove isRequests var if not goign to use
const isRequests = false; const isRequests = false;
console.log(
"generateResponsesCombined docmentId docType",
documentId,
docType
);
try { try {
setIsLoading(true); setIsLoading(true);
fetch( fetch(
@@ -283,6 +276,7 @@ const DocEditPage = () => {
return response.json(); return response.json();
}) })
.then((data) => { .then((data) => {
console.log("data in genResponseFromArrayCombined", data);
const respArray = data[0].responses; const respArray = data[0].responses;
const result = respArray?.map((item, index) => { const result = respArray?.map((item, index) => {
let obj = {}; let obj = {};
@@ -302,12 +296,11 @@ const DocEditPage = () => {
} }
async function generateResponses(documentId) { async function generateResponses(documentId) {
/*
if (responsesCreated > 0) { if (responsesCreated > 0) {
return; return;
} }
*/
const docType = String(documentType); const docType = String(documentType);
let mode;
//TODO: remove isRequests var //TODO: remove isRequests var
const isRequests = false; const isRequests = false;
@@ -323,6 +316,7 @@ const DocEditPage = () => {
return response.json(); return response.json();
}) })
.then((data) => { .then((data) => {
console.log("data in genResponseFromArray ", data);
const respArray = data[0].responses; const respArray = data[0].responses;
const result = respArray?.map((item, index) => { const result = respArray?.map((item, index) => {
let obj = {}; let obj = {};
@@ -362,7 +356,6 @@ const DocEditPage = () => {
} }
async function createAndReturnDocx() { async function createAndReturnDocx() {
window.scrollTo({ top: 0 });
setIsBusy(true); setIsBusy(true);
const response = await handleCreateDocx(); const response = await handleCreateDocx();
if (response.status === 200) { if (response.status === 200) {
@@ -371,6 +364,7 @@ const DocEditPage = () => {
} else { } else {
setShowErrorModal(true); setShowErrorModal(true);
} }
setIsBusy(false);
} }
async function cleanUpDocx() { async function cleanUpDocx() {
@@ -380,7 +374,7 @@ const DocEditPage = () => {
method: "GET", method: "GET",
}) })
.then((response) => { .then((response) => {
setIsBusy(false); console.log(response);
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
@@ -597,7 +591,8 @@ const DocEditPage = () => {
fetchedCase?.clientPosition == "Defendant" fetchedCase?.clientPosition == "Defendant"
? fetchedCase?.defendantParties ? fetchedCase?.defendantParties
: fetchedCase?.plaintiffParties; : fetchedCase?.plaintiffParties;
console.log("responses", responses);
console.log("parsedRogs", parsedRogs);
const editingContent = () => { const editingContent = () => {
return ( return (
<> <>

View File

@@ -2,7 +2,6 @@ import { useContext, useEffect, useState, useRef } from "react";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import { AppContext } from "../../Hooks/useContext/appContext"; import { AppContext } from "../../Hooks/useContext/appContext";
import SelectDropdown from "../../pageElements/SelectDropdown"; import SelectDropdown from "../../pageElements/SelectDropdown";
import { useParams } from "react-router-dom";
import { DocCard } from "../../pageElements/Cards"; import { DocCard } from "../../pageElements/Cards";
import { db } from "../../firebase"; import { db } from "../../firebase";
import MobileContent from "../MobileContent"; import MobileContent from "../MobileContent";
@@ -17,31 +16,26 @@ import {
} from "firebase/firestore"; } from "firebase/firestore";
import ListPagination from "../../pageElements/ListPagination"; import ListPagination from "../../pageElements/ListPagination";
import ConfirmModal from "../Modals/ConfirmModal"; import ConfirmModal from "../Modals/ConfirmModal";
import Toggle from "../../pageElements/Toggle";
import "../../styles/doclist-page.scss"; import "../../styles/doclist-page.scss";
const DocumentListPage = ({ perPage }) => { const DocumentListPage = ({ perPage }) => {
const size = window.innerWidth < 440; const size = window.innerWidth < 440;
const { docId, documentType, caseId } = useParams();
const [isMobile, setIsMobile] = useState(size); const [isMobile, setIsMobile] = useState(size);
const { appState } = useContext(AppContext);
const count = useRef(null); const count = useRef(null);
const navigate = useNavigate(); const navigate = useNavigate();
const [showDeleteModal, setShowDeleteModal] = useState(false); const [showDeleteModal, setShowDeleteModal] = useState(false);
const [selectedDocumentId, setSelectedDocumentId] = useState(null); const [selectedDocumentId, setSelectedDocumentId] = useState(null);
//const [allDocs, setAllDocs] = useState(null); const [allDocs, setAllDocs] = useState(null);
const [allResponseDocs, setAllResponseDocs] = useState(null); const { appState } = useContext(AppContext);
const [allRequestDocs, setAllRequestDocs] = useState(null);
const [totalPages, setTotalPages] = useState(1); const [totalPages, setTotalPages] = useState(1);
const { group } = appState; const { group } = appState;
const [page, setPage] = useState(1); const [page, setPage] = useState(1);
const [order, setOrder] = useState("parentCaseName"); const [order, setOrder] = useState("parentCaseName");
const [order2, setOrder2] = useState("parentCaseName");
const appUserId = group ? group.appUserId : null; const appUserId = group ? group.appUserId : null;
const [isBusy, setIsBusy] = useState(false); const [isBusy, setIsBusy] = useState(false);
const [selectedDocumentType, setSelectedDocumentType] = useState(); const [selectedDocumentType, setSelectedDocumentType] = useState();
const [showModal, setShowModal] = useState(false); const [showModal, setShowModal] = useState(false);
const [verbValue, setVerbValue] = useState(1);
const apiUrl = const apiUrl =
process.env.NODE_ENV === "development" process.env.NODE_ENV === "development"
@@ -61,52 +55,14 @@ const DocumentListPage = ({ perPage }) => {
}; };
}, []); }, []);
async function generateResponses(docId) { function getDocuments() {
/*
if (responsesCreated > 0) {
return;
}
*/
console.log("docId in generate responses", docId);
//const docType = String(documentType);
//TODO: remove isRequests var
const isRequests = false;
const docType = "interrogatories";
try {
fetch(
`${apiUrl}/genResponseFromArray/${docId}/${docType}/${isRequests}`,
{
method: "GET",
}
)
.then(function (response) {
return response.json();
})
.catch((err) => console.log(err));
} catch (err) {
console.log("err", err);
}
}
useEffect(() => {
console.log(
"useEffect fired in doc list to gen response here's docId",
docId
);
generateResponses(docId).then((response) => {
console.log("response", response);
});
}, [documentId]);
function getRequests() {
if (!appUserId) { if (!appUserId) {
setAllRequestDocs([]); setAllDocs([]);
return; return;
} }
const q = query( const q = query(
collection(db, "documents"), collection(db, "documents"),
where("ownerId", "==", appUserId), where("ownerId", "==", appUserId)
where("docType", "==", "interrogatories-out")
); );
const unsub = onSnapshot(q, (snapshot) => { const unsub = onSnapshot(q, (snapshot) => {
const data = snapshot.docs.map((doc) => ({ const data = snapshot.docs.map((doc) => ({
@@ -131,52 +87,12 @@ const DocumentListPage = ({ perPage }) => {
setPage(pages); setPage(pages);
} }
setTotalPages(pages); setTotalPages(pages);
setAllRequestDocs(data); setAllDocs(data);
}); });
return unsub; return unsub;
} }
function getResponses() { useEffect(getDocuments, [appUserId, order]);
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) { async function deleteFromDb(documentId) {
if (isBusy) { if (isBusy) {
@@ -195,8 +111,7 @@ const DocumentListPage = ({ perPage }) => {
} }
async function deleteFromStorage() { async function deleteFromStorage() {
//have to refactor to account for two diff lists const selectedDoc = allDocs.filter((doc) => {
const selectedDoc = allRequestDocs.filter((doc) => {
return doc.documentId == selectedDocumentId; return doc.documentId == selectedDocumentId;
}); });
@@ -236,8 +151,6 @@ const DocumentListPage = ({ perPage }) => {
); );
} }
const handleToggle = (val) => setVerbValue(val);
function handleCancelDelete() { function handleCancelDelete() {
if (!isBusy) { if (!isBusy) {
setShowDeleteModal(false); setShowDeleteModal(false);
@@ -258,7 +171,7 @@ const DocumentListPage = ({ perPage }) => {
if (!group) { if (!group) {
return null; return null;
} }
console.log("allDocs", allDocs);
const DesktopContent = () => { const DesktopContent = () => {
return ( return (
<> <>
@@ -266,114 +179,10 @@ const DocumentListPage = ({ perPage }) => {
<h2 className="doc-header-text">Documents</h2> <h2 className="doc-header-text">Documents</h2>
<div className="user-name-container">{group.firm}</div> <div className="user-name-container">{group.firm}</div>
</div> </div>
{allResponseDocs === null && allRequestDocs === null ? ( {allDocs === null ? <div>Loading...</div> : null}
<div>Loading...</div>
) : null}
{allRequestDocs != null && allRequestDocs.length > 0 ? (
<div className="document-list-upper-wrapper">
<div className="list-upper-left">Discovery Request Documents</div>
<div className="list-upper-right">
<div className="d-flex justify-content-end mb-3">
<SelectDropdown
dropDownOptions={dropDownOptions}
titleText="Sort documents"
handleSelect={setOrder}
/>
</div>
</div>
</div>
) : (
<></>
)}
<div className="document-list-lower-wrapper">
{allRequestDocs?.length > 0 ? (
allRequestDocs
.slice((page - 1) * perPage, page * perPage)
.map((doc, i) => (
<DocCard
key={`doccard-${i}`}
title={doc.docTitle}
parentCaseNumber={doc.parentCaseNumber}
parentCaseName={doc.parentCaseName}
parentCaseId={doc.parentCaseId}
createdAt={doc.createdAt}
docType={doc.docType}
documentId={doc.documentId}
dateServed={doc.dateServed}
confirmDelete={confirmDelete}
handleNavigate={handleNavigate}
displayDeleteButton={true}
responseGenerations={doc.responseGenerations}
/>
))
) : (
<></>
)}
</div>
{allResponseDocs != null && allResponseDocs.length > 0 ? (
<div className="document-list-upper-wrapper">
<div className="list-upper-left">Discovery Response Documents</div>
<div className="list-upper-right">
<div className="d-flex justify-content-end mb-3">
<SelectDropdown
dropDownOptions={dropDownOptions}
titleText="Sort documents"
handleSelect={setOrder}
/>
</div>
</div>
</div>
) : (
<></>
)}
<div className="document-list-lower-wrapper">
{allResponseDocs?.length > 0 ? (
allResponseDocs
.slice((page - 1) * perPage, page * perPage)
.map((doc, i) => (
<DocCard
key={`doccard-${i}`}
title={doc.docTitle}
parentCaseNumber={doc.parentCaseNumber}
parentCaseName={doc.parentCaseName}
parentCaseId={doc.parentCaseId}
createdAt={doc.createdAt}
docType={doc.docType}
documentId={doc.documentId}
dateServed={doc.dateServed}
confirmDelete={confirmDelete}
handleNavigate={handleNavigate}
displayDeleteButton={true}
responseGenerations={doc.responseGenerations}
/>
))
) : (
<></>
)}
</div>
{showDeleteModal && selectedDocumentId !== null ? (
<ConfirmModal
onCancel={handleCancelDelete}
onConfirm={handleDeleteDocument}
buttonLabelText="Delete"
modalText="Confirm that you want to permanently delete this document."
/>
) : null}
</>
);
};
return isMobile ? <MobileContent /> : <DesktopContent />;
};
export default DocumentListPage;
/*
{allDocs !== null ? ( {allDocs !== null ? (
<div className="content-container"> <div className="dropdown-container">
{allDocs.length > 0 ? ( {allDocs.length > 0 ? (
<div className="document-list-upper-wrapper">
<div className="list-upper-left"></div>
<div className="list-upper-right">
<div className="d-flex justify-content-end mb-3"> <div className="d-flex justify-content-end mb-3">
<SelectDropdown <SelectDropdown
dropDownOptions={dropDownOptions} dropDownOptions={dropDownOptions}
@@ -381,8 +190,6 @@ export default DocumentListPage;
handleSelect={setOrder} handleSelect={setOrder}
/> />
</div> </div>
</div>
</div>
) : ( ) : (
<></> <></>
)} )}
@@ -394,17 +201,17 @@ export default DocumentListPage;
<DocCard <DocCard
key={`doccard-${i}`} key={`doccard-${i}`}
title={doc.docTitle} title={doc.docTitle}
parentCaseNumber={doc.parentCaseNumber} parentCaseNumber={doc?.parentCaseNumber}
parentCaseName={doc.parentCaseName} parentCaseName={doc?.parentCaseName}
parentCaseId={doc.parentCaseId} parentCaseId={doc?.parentCaseId}
createdAt={doc.createdAt} createdAt={doc?.createdAt}
docType={doc.docType} docType={doc?.docType}
documentId={doc.documentId} documentId={doc?.documentId}
dateServed={doc.dateServed} dateServed={doc?.dateServed}
confirmDelete={confirmDelete} confirmDelete={confirmDelete}
handleNavigate={handleNavigate} handleNavigate={handleNavigate}
displayDeleteButton={true} displayDeleteButton={true}
responseGenerations={doc.responseGenerations} responseGenerations={doc?.responseGenerations}
/> />
)) ))
) : ( ) : (
@@ -452,13 +259,18 @@ export default DocumentListPage;
) : null} ) : null}
</div> </div>
) : null} ) : null}
{showDeleteModal && selectedDocumentId !== null ? (
<ConfirmModal
onCancel={handleCancelDelete}
onConfirm={handleDeleteDocument}
buttonLabelText="Delete"
modalText="Confirm that you want to permanently delete this document."
/>
) : null}
</>
);
};
return isMobile ? <MobileContent /> : <DesktopContent />;
};
<div className="toggle-outer"> export default DocumentListPage;
<div className="toggle-header"> Response Verbosity</div>
<div className="toggle-box">
<p className="select-billing-text">Min</p>
<Toggle value={verbValue} onClick={handleToggle} />
<p className="select-billing-text">Max</p>
</div>
</div>
*/

View File

@@ -78,7 +78,7 @@ const UploadModal = (props) => {
parentCaseName: `${caption} v. ${captionTwo}`, parentCaseName: `${caption} v. ${captionTwo}`,
parentCaseNumber: caseNumber, parentCaseNumber: caseNumber,
parentCaseJurisdiction: jurisdiction, parentCaseJurisdiction: jurisdiction,
responseGenerations: 1, responseGenerations: 0,
}; };
if (radioValue === "complaint") { if (radioValue === "complaint") {