diff --git a/src/Components/Document/ReqEditPage.js b/src/Components/Document/ReqEditPage.js index ff1464d..0ad82ba 100644 --- a/src/Components/Document/ReqEditPage.js +++ b/src/Components/Document/ReqEditPage.js @@ -4,6 +4,9 @@ import { useParams } from "react-router-dom"; import { Link, useNavigate } from "react-router-dom"; import { AppContext } from "../../Hooks/useContext/appContext"; import EditElement from "../../pageElements/EditElement"; +import { docEditCopy } from "../../Constants/Copy/docEditCopy.js"; +import ConfirmModal from "../Modals/ConfirmModal"; +import Button from "../../pageElements/Button"; import { db } from "../../firebase"; import { collection, @@ -34,7 +37,7 @@ const RequestEditPage = () => { const [isReport, setIsReport] = useState(false); const [issueText, setIssueText] = useState(""); const [showErrorModal, setShowErrorModal] = useState(false); - + const [isBusy, setIsBusy] = useState(false); const state = group.state[0] ? group.state[0].code : "ny"; const lawFirm = group ? group?.firm : null; const streetAdd = group ? group?.streetAddress : null; @@ -85,14 +88,11 @@ const RequestEditPage = () => { } getOutgoingRequests(documentId) .then((data) => { - console.log("data in getOutgoingRequests", data); - /* const resp = data[0].responses.map((item, index) => { // NEVER CHANGE THIS: return { showInputEle: false, resp: item.text, index: index }; }); - */ - setResponses(); + setResponses(resp); }) .catch((err) => console.log(err)); }, [documentId]); @@ -126,6 +126,20 @@ const RequestEditPage = () => { return req; } + async function createAndReturnDocx() { + window.scrollTo({ top: 0 }); + setIsBusy(true); + const response = await handleCreateDocx(); + if (response.status === 200) { + setTimeout(getDocx, 5000); + setTimeout(cleanUpDocx, 10000); + } else { + setShowErrorModal(true); + } + } + + const postEditedResponses = () => {}; + const onScrollClick = () => { const bottom = window.document.scrollingElement.scrollHeight; const place = window.scrollY; @@ -136,11 +150,222 @@ const RequestEditPage = () => { } }; + const handleBlur = (e, i) => { + const newSelectedResponses = responses?.map((r) => { + if (r.index === i) { + return { + ...r, + showInputEle: !showInputEle, + }; + } + return r; + }); + setResponses(newSelectedResponses); + }; + + const handleFocus = (arg, i) => { + const newSelectedResponses = responses?.map((r) => { + if (r.index === i) { + return { + ...r, + showInputEle: !showInputEle, + }; + } + return r; + }); + setResponses(newSelectedResponses); + }; + + const handleEditValue = (e, i) => { + const editingRes = responses?.map((r) => { + if (r.index === i) { + return { + ...r, + resp: e.target.value, + }; + } + return r; + }); + setResponses(editingRes); + }; + + const handleBack = () => { + navigate(`/documents`); + }; + + const handleCancelSave = () => { + setShowSaveModal(false); + }; + + const handleSave = () => { + postEditedResponses(); + setShowSaveModal(false); + }; + + const handleConfirmReport = () => { + setShowSaveModal(true); + setIsReport(true); + }; + + const numberingContent = (i) => { + let numText; + if (documentType === "interrogatories") { + numText = "INTERROGATORY NO.."; + } else if (documentType === "admissions") { + numText = "REQUEST FOR ADMISSION NO."; + } else if (documentType === "production") { + numText = "REQUEST FOR PRODUCTION NO."; + } else { + numText = "REQUEST NO."; + } + return
{`${numText}${i + 1} `}
; + }; + + const respondent = + fetchedCase?.clientPosition == "Defendant" + ? fetchedCase?.defendantParties + : fetchedCase?.plaintiffParties; + + const displayCopy = + state === "ny" + ? docEditCopy.NewYork + : state === "nj" + ? docEditCopy.NewJersey + : docEditCopy.NewYork; + + const servingParty = + fetchedCase?.clientPosition === "Defendant" + ? fetchedCase?.plaintiffParties + : fetchedCase?.defendantParties; + + const editingContent = () => { + return ( + <> +
{headerPicker()}
+
+
{headerString}
+
+ {displayCopy.prelimaryStatement( + documentType, + respondent, + servingParty + )} +
+
+ {parsedRogs?.map((rog, i) => ( +
+
+ {numberingContent(i)} + {rog?.text} +
+
+ 2 + ? // NEVER CHANGE THIS + responses[i].resp + : null + } + setShowInputEle={setShowInputEle} + showInputEle={ + responses && responses.length > 2 + ? responses[i].showInputEle + : null + } + handleFocus={handleFocus} + handleEditValue={handleEditValue} + handleBlur={handleBlur} + i={i} + /> +
+
+ ))} +
handleConfirmReport()} + > +
Report an issue
+
+
+
+ {/* TODO: add tooltip: "This will save the document and create a .docx file that will (be downloaded? saved somewhere?" */} +
+
+
+
+
+
+
+
+
+
+ {showSaveModal && !isReport && documentId !== null ? ( + + ) : null} + {showSaveModal && isReport && documentId !== null ? ( + + ) : null} + {showErrorModal ? ( + setShowErrorModal(false)} + onConfirm={() => setShowErrorModal(false)} + buttonLabelText="Confirm" + modalText={ + "There was a problem. Support was notified and will respond within 24 hours." + } + /> + ) : null} + + ); + }; + + const readyToEdit = fetchedCase && responses.length > 1; + return (
-
{headerPicker(state, fetchedCase, onScrollClick)}
+
); }; export default RequestEditPage; + +/* + +{headerPicker(state, fetchedCase, onScrollClick)} +*/