Merge pull request #111 from kjannette/request3

Request3
This commit is contained in:
S Jannette
2024-03-02 17:06:29 -06:00
committed by GitHub
3 changed files with 287 additions and 15 deletions

View File

@@ -149,7 +149,7 @@ const CaseDetailsPage = () => {
if (!group) {
return null;
}
console.log("-----------------------------------------subCase", subCase);
const HeadingContent = () => {
return (
<div className="details-heading-container">

View File

@@ -4,6 +4,10 @@ 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 LoadingSpinner from "../../pageElements/LoadingSpinner";
import { docEditCopy } from "../../Constants/Copy/docEditCopy.js";
import ConfirmModal from "../Modals/ConfirmModal";
import Button from "../../pageElements/Button";
import { db } from "../../firebase";
import {
collection,
@@ -21,8 +25,7 @@ const RequestEditPage = () => {
const { appState } = useContext(AppContext);
const { group } = appState;
const navigate = useNavigate();
const [parsedRogs, setParsedRogs] = useState();
const [responses, setResponses] = useState([1]);
const [requests, setRequests] = useState([1]);
const [fetchedCase, setFetchedCase] = useState();
const [showInputEle, setShowInputEle] = useState(true);
const [document, setDocument] = useState(null);
@@ -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,12 @@ const RequestEditPage = () => {
}
getOutgoingRequests(documentId)
.then((data) => {
console.log("data in getOutgoingRequests", data);
/*
const resp = data[0].responses.map((item, index) => {
console.log("data in useEffect", data);
const resp = data[0].requests.map((item, index) => {
// NEVER CHANGE THIS:
return { showInputEle: false, resp: item.text, index: index };
return { showInputEle: false, text: item.text, index: index };
});
*/
setResponses();
setRequests(resp);
})
.catch((err) => console.log(err));
}, [documentId]);
@@ -126,6 +127,50 @@ const RequestEditPage = () => {
return req;
}
async function getDocx() {
const docId = documentId;
const reqType = documentType;
fetch(`${apiUrl}/getDocx/${docId}/${reqType}`, {
method: "GET",
}).then((response) => {
response.blob().then((blob) => {
let url = window.URL.createObjectURL(blob);
let a = window.document.createElement("a");
a.href = url;
a.download = `${reqType}-repsonse.docx`;
a.click();
});
});
}
async function cleanUpDocx() {
const docId = documentId;
const reqType = documentType;
fetch(`${apiUrl}/cleanUpDocx/${docId}/${reqType}`, {
method: "GET",
})
.then((response) => {
setIsBusy(false);
})
.catch((err) => {
console.log(err);
});
}
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 postEditedrequests = () => {};
const onScrollClick = () => {
const bottom = window.document.scrollingElement.scrollHeight;
const place = window.scrollY;
@@ -136,11 +181,238 @@ const RequestEditPage = () => {
}
};
async function handleCreateDocx() {
// TODO: compare to see if any changes made before gen, save those
const docId = documentId;
const leadAttorneys = fetchedCase?.leadAttorneys
? fetchedCase?.leadAttorneys
: null;
const reqType = documentType;
const captionOne = fetchedCase.caption;
const captionTwo = fetchedCase.captionTwo;
const caseNum = fetchedCase.caseNumber;
const plaintiffs = fetchedCase.plaintiffParties;
const defendants = fetchedCase.defendantParties;
const venued = fetchedCase.venue;
const juris = fetchedCase.jurisdiction;
const judge = fetchedCase.judge;
const clientPosition = fetchedCase?.clientPosition
? fetchedCase?.clientPosition
: null;
try {
const response = await fetch(`${apiUrl}/genDocx/${docId}/${reqType}`, {
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
},
body: JSON.stringify({
caseCaption1: captionOne,
caseCaption2: captionTwo,
caseNumber: caseNum,
clientPosition: clientPosition,
defendant: defendants,
firm: lawFirm,
firmCity: city,
firmState: usState.code,
firmStreetAddress: streetAdd,
firmZip: zipCode,
judge: judge,
jurisdiction: juris,
leadAttorneys: leadAttorneys,
plaintiff: plaintiffs,
state: state,
tel: telephone,
venue: venued,
}),
});
return response;
} catch (error) {
console.error("Error sending requests to the server:", error);
}
}
const handleBlur = (e, i) => {
const newSelectedrequests = requests?.map((r) => {
if (r.index === i) {
return {
...r,
showInputEle: !showInputEle,
};
}
return r;
});
setRequests(newSelectedrequests);
};
const handleFocus = (arg, i) => {
const newSelectedrequests = requests?.map((r) => {
if (r.index === i) {
return {
...r,
showInputEle: !showInputEle,
};
}
return r;
});
setRequests(newSelectedrequests);
};
const handleEditValue = (e, i) => {
const editingRes = requests?.map((r) => {
if (r.index === i) {
return {
...r,
resp: e.target.value,
};
}
return r;
});
setRequests(editingRes);
};
const handleBack = () => {
navigate(`/documents`);
};
const handleCancelSave = () => {
setShowSaveModal(false);
};
const handleSave = () => {
postEditedrequests();
setShowSaveModal(false);
};
const handleReport = () => {
setShowSaveModal(false);
setIsReport(false);
};
const handleConfirmSave = () => {
setShowSaveModal(true);
};
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 <div className="numbering-container">{`${numText}${i + 1} `}</div>;
};
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;
console.log("requests", requests);
const editingContent = () => {
return (
<div>
<div> {headerPicker(state, fetchedCase, onScrollClick)}</div>
<>
<div> {headerPicker()}</div>
<div className="doc-editing-wrapper">
<div className="pleading-header">{headerString}</div>
{/*displayCopy.prelimaryStatement*/}
<div className="doc-editing-sub-wrapper">
{requests?.map((req, i) => (
<div className="req-item-outer-div">
<div className="request-text-up">{req?.text}</div>
</div>
))}
<div
className="docedit-report-container"
onClick={() => handleConfirmReport()}
>
<div className="docedit-report-link">Report an issue</div>
</div>
</div>
</div>
</>
);
};
//const readyToEdit = fetchedCase && requests.length > 1;
const readyToEdit = true;
const messages = [
"Generating responses. Please be patient, this may take several minutes.",
];
return isLoading ? (
<LoadingSpinner message={messages[0]} />
) : isBusy ? (
<LoadingSpinner message={"Downloading .docx"} loaderType="MoonLoader" />
) : readyToEdit ? (
editingContent()
) : (
<div className="docedit-errstate-container">
<div className="nodocs-text-container">
<p> Content for this document cannot be displayed at this time.</p>
<p>Support has been notified and will respond within 24 hours.</p>
<Link to="/dashboard">Return to Dashboard</Link>
</div>
</div>
);
};
export default RequestEditPage;
/*
<div>
{displayCopy.prelimaryStatement(
documentType,
respondent,
servingParty
)}
</div>
console.log("reqwuests in useEffect", requests);
{headerPicker(state, fetchedCase, onScrollClick)}
<EditElement
value={
requests && requests.length > 2
? // NEVER CHANGE THIS
requests[i].resp
: null
}
setShowInputEle={setShowInputEle}
showInputEle={
requests && requests.length > 2
? requests[i].showInputEle
: null
}
handleFocus={handleFocus}
handleEditValue={handleEditValue}
handleBlur={handleBlur}
i={i}
/>
*/

View File

@@ -39,6 +39,7 @@ const UploadModal = (props) => {
const [docError, setShowDocError] = useState("");
const fileTypes = ["PDF"];
const fileName = fileToParse ? fileToParse.name : undefined;
let docType;
const apiUrl =
process.env.NODE_ENV === "development"
@@ -100,10 +101,9 @@ const UploadModal = (props) => {
body: file,
});
const res = response;
console.log("-------------------------------->res in uploadFile", res);
return res;
} else {
const response = await fetch(`${apiUrl}/parseNewDoc`, {
const response = await fetch(`${apiUrl}/v1/parse-new-req-doc`, {
method: "POST",
body: file,
});