- CREATE THE CASE: First, input the case to which the
- discovery request pertains. Click “Cases” in the top navigation bar to
- go to the Case View. Click the “Create New Case” button
- (lower right) to surface the Create Case Modal. Enter all relevant
- information -- case name, case number, parties, etc. -- and click “Save
- Case”. The modal will close, returning you to the{" "}
- Case View.
+ CREATE THE CASE: Click “Cases” in the top navigation
+ bar to go to the Case View. Click the “Create New Case”
+ button (lower right) to surface the Create Case Modal. Enter all
+ relevant information -- case name, case number, parties, etc. -- and
+ click “Save Case” to open the new case's
+ Details View. Click “Upload Document”.
- On the newly-created case info card, click the “View” button (far right)
- to navigate to its Case Details View. Click “Upload
- Document” to surface the Document Upload Modal.
+ UPLOAD YOUR DOCUMENT: You will now see the Document
+ Upload Modal. Enter your discovery request's info: document title, i.e.
+ “Defendant’s Interrogatories,” and (optionally) the date served. Drag
+ and drop the file, or click to select it from your computer's files,{" "}
+ {" "}
+ then click “Upload”.
+ The upload will begin. Parsing the document usually takes 1 to 2
+ minutes, but be patient - it may take up to 5.
- UPLOAD A DOCUMENT: On the Document Upload Modal, enter
- the document title, i.e. “Defendant’s Interrogatories,” and (optionally)
- the date served. Drag and drop or click to select the request document
- from your files. The document must be in .pdf format.
- {" "}
-
- Click “Upload”, and will you automatically navigate to the Document
- List View.
-
{" "}
+ GENERATE THE RESPONSE: From the Document List View,
+ click the “Generate Responses'' button. Novdraft’s Intellidraft AI will
+ generate the response and automatically navigate to the interactive
+ Document Editor. You can edit the responses and save progress any time
+ by clicking the “Save Changes” button.
- GENERATE THE DISCOVERY RESPONSE: Click the “Generate
- Responses'' button. Novdraft’s Intellidraft AI will generate the
- response and automatically navigate to the interactive Document Editor.
- You can edit the responses and save progress anytime by clicking the
- “Save Changes” button. When you are satisfied, you can download a .docx
- file by clicking the “Create .docx File” button.
+ DOWNLOAD YOUR RESPONSE DOCUMENT: Click the “Create
+ .Docx' button to download your fully-formatted, ready-to-serve response.
- Pro tip: once you've created a case, you can skip most of
- these steps. Simply search for the case by entering the case number in the
- search bar on your Dashboard, click "Express Document Upload" and follow
- the prompts.
+ Pro tip: Once you've created the case, you can skip step
+ one. Simply search for the case by entering the case number in the search
+ bar on your Dashboard, click "Express Document Upload" and follow the
+ prompts.
diff --git a/src/Constants/Fields/CreateCaseFields.js b/src/Constants/Fields/CreateCaseFields.js
new file mode 100644
index 0000000..01e7b0d
--- /dev/null
+++ b/src/Constants/Fields/CreateCaseFields.js
@@ -0,0 +1,20 @@
+export const createCaseFields = {
+ caption: { required: true, maxLength: 45 },
+ captionTwo: { required: true, maxLength: 45 },
+ caseNumber: { required: true, maxLength: 45 },
+ judge: { required: true, maxLength: 45 },
+ plaintiffParties: { required: true, maxLength: 45 },
+ defendantParties: { required: true, maxLength: 45 },
+ jurisdiction: { required: true, maxLength: 45 },
+ billingCode: { required: true, maxLength: 45 },
+ venue: { required: true, maxLength: 45 },
+ caseType: { required: true, maxLength: 45 },
+ trialDate: { required: true, maxLength: 45, type: "date" },
+ filedDate: { required: true, maxLength: 45, type: "date" },
+ contactFirstName: { required: true, maxLength: 45 },
+ contactLastName: { required: true, maxLength: 45 },
+ contactEmail: { required: true, maxLength: 45, type: "email" },
+ leadAttorneys: { required: true, maxLength: 45 },
+ lawFirm: { required: false, maxLength: 45 },
+ clientPosition: { required: true, default: "Plaintiff" },
+};
diff --git a/src/Utils/Form.js b/src/Utils/Form.js
index 3e44f77..0ac9d9e 100644
--- a/src/Utils/Form.js
+++ b/src/Utils/Form.js
@@ -96,8 +96,10 @@ export const handleFormDataChange = (e, name, data, fields) => {
return null;
};
-export const isFormDataHasErrors = (data) =>
- Object.values(data).reduce(
+export const isFormDataHasErrors = (data) => {
+ console.log("data", data);
+ return Object.values(data).reduce(
(hasErrors, { error }) => hasErrors || error,
false
);
+};
diff --git a/src/pageElements/Cards.js b/src/pageElements/Cards.js
index 90377e8..965e9f7 100644
--- a/src/pageElements/Cards.js
+++ b/src/pageElements/Cards.js
@@ -4,7 +4,7 @@ import { FileEarmarkText } from "react-bootstrap-icons";
import TextInput from "../pageElements/TextInput";
import Tooltip from "../pageElements/Tooltip";
import { InfoCircle } from "react-bootstrap-icons";
-
+import { toDate } from "firebase/firestore";
export const InfoCard = (props) => {
const { data, onEdit, onCancel, onSave, onChangeInput, isEditing, isBusy } =
props;
@@ -273,15 +273,20 @@ export const DocCard = (props) => {
handleNavigate,
responseGenerations,
confirmDelete,
+ createdAt,
} = props;
-
+ const now = new Date().getTime();
+ const uploadedAt = createdAt.toDate();
+ const isReportable = Math.round((now - uploadedAt) / 60 / 1000) > 15;
+ const disabled = docType ? false : true;
+ const tooltipText =
+ "Parsing is taking a bit longer than usual. This usually resolves within 15 minutes. If it does not, click “report” and support will address the issue within 24 hours.";
+ const pendingText =
+ "Parsing in process, please be patient. This should resolve within 10 minutes.";
const report = (documentId, docType) => {
console.log("report documentId, docType", documentId, docType);
};
- const tooltipText =
- "Parsing is taking a bit longer than usual. This usually resolves within 10 - 15 minutes. If it does not, click “report” and support will address the issue within 24 hours.";
- const disabled = docType ? false : true;
return (