From f2aaf419c94079460437be5adcce0af432e4dc25 Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Wed, 31 Jan 2024 17:29:54 -0600 Subject: [PATCH 01/10] more --- src/Components/Case/CaseTypePage.js | 14 ++++++++++---- src/styles/casetype-page.scss | 1 - 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Components/Case/CaseTypePage.js b/src/Components/Case/CaseTypePage.js index 308680c..253e90a 100644 --- a/src/Components/Case/CaseTypePage.js +++ b/src/Components/Case/CaseTypePage.js @@ -43,10 +43,16 @@ const CaseTypePage = () => { useEffect(getCase, [caseId, appUserId]); const setSelectedTag = (item) => { - console.log("item in setSelectedTag ---------------------->", item); - const temp = [...selectedCaseTags, item.tagName]; - setSelectedCaseTags(temp); - console.log("selectedCaseTags", selectedCaseTags); + if (selectedCaseTags.length < 6) { + console.log("item in setSelectedTag ---------------------->", item); + const temp = [...selectedCaseTags, item.tagName]; + setSelectedCaseTags(temp); + console.log("selectedCaseTags", selectedCaseTags); + } + }; + + const handleTagClick = (arg) => { + // }; const radioOptions = [ diff --git a/src/styles/casetype-page.scss b/src/styles/casetype-page.scss index 27d7cbe..7892704 100644 --- a/src/styles/casetype-page.scss +++ b/src/styles/casetype-page.scss @@ -33,7 +33,6 @@ display: flex; flex-direction: row; flex-wrap: wrap; - border: 1px solid red; padding-top: 8px; } From 7950e3a8cc13e3ddda9f86f3a136736311ebe85a Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Wed, 31 Jan 2024 17:31:45 -0600 Subject: [PATCH 02/10] more --- src/Components/Case/CaseTypePage.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Components/Case/CaseTypePage.js b/src/Components/Case/CaseTypePage.js index 253e90a..e086cfd 100644 --- a/src/Components/Case/CaseTypePage.js +++ b/src/Components/Case/CaseTypePage.js @@ -52,7 +52,13 @@ const CaseTypePage = () => { }; const handleTagClick = (arg) => { - // + const temp = selectedCaseTags; + const foo = temp.filter((tag) => { + if (tag != arg.value) { + return tag; + } + }); + selectedCaseTags(foo); }; const radioOptions = [ From 991cb2771f10ef982302d856f46bb51df410c8ac Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Wed, 31 Jan 2024 17:43:52 -0600 Subject: [PATCH 03/10] more --- src/Components/Case/CaseTypePage.js | 11 +++++++---- src/Constants/Tags/CaseTags.js | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Components/Case/CaseTypePage.js b/src/Components/Case/CaseTypePage.js index e086cfd..7037ecb 100644 --- a/src/Components/Case/CaseTypePage.js +++ b/src/Components/Case/CaseTypePage.js @@ -43,7 +43,7 @@ const CaseTypePage = () => { useEffect(getCase, [caseId, appUserId]); const setSelectedTag = (item) => { - if (selectedCaseTags.length < 6) { + if (selectedCaseTags.length < 5) { console.log("item in setSelectedTag ---------------------->", item); const temp = [...selectedCaseTags, item.tagName]; setSelectedCaseTags(temp); @@ -54,11 +54,11 @@ const CaseTypePage = () => { const handleTagClick = (arg) => { const temp = selectedCaseTags; const foo = temp.filter((tag) => { - if (tag != arg.value) { + if (tag != arg) { return tag; } }); - selectedCaseTags(foo); + setSelectedCaseTags(foo); }; const radioOptions = [ @@ -169,7 +169,10 @@ const CaseTypePage = () => { {selectedCaseTags.map((tag, i) => (
-
+
handleTagClick(tag)} + >
x
{tag}
diff --git a/src/Constants/Tags/CaseTags.js b/src/Constants/Tags/CaseTags.js index 16080df..69cada6 100644 --- a/src/Constants/Tags/CaseTags.js +++ b/src/Constants/Tags/CaseTags.js @@ -694,13 +694,13 @@ export const caseTags = [ }, { tagId: "cbe77c35-edfb-4dde-8966-b4cc11603647", - tagName: "family law - custoday", + tagName: "family law - custody", mainType: { name: "family law", id: "8e591ed5-ca8e-4569-b1a8-c664dcd678c8", }, subType: { - name: "custoday", + name: "custody", subTypeId: "4c3d7038-9e19-4f45-9921-a1c3d49d19b2", }, }, From 91b4737c340c5622d583efb7d4734adadf0efd56 Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Wed, 31 Jan 2024 18:00:17 -0600 Subject: [PATCH 04/10] more --- src/Components/Case/CaseTypePage.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Components/Case/CaseTypePage.js b/src/Components/Case/CaseTypePage.js index 7037ecb..e307284 100644 --- a/src/Components/Case/CaseTypePage.js +++ b/src/Components/Case/CaseTypePage.js @@ -21,9 +21,14 @@ const CaseTypePage = () => { const [contactName, setContactName] = useState(""); const [billingCode, setBillingCode] = useState(""); const [leadAttorney, setLeadAttorney] = useState(""); - const [radioValue, setRadioValue] = useState(); + const [radioValue, setRadioValue] = useState(""); const [selectedCaseTags, setSelectedCaseTags] = useState([]); const [isBusy, setIsBusy] = useState(false); + + const [emailError, setEmailError] = useState(""); + const [leadAttorneyError, setLeadAttorneyError] = useState(""); + const [caseTypeError, setCaseTypeError] = useState(false); + const [clientPositionError, setClientPositionError] = useState(); const typeaheadRef = useRef(); function getCase() { @@ -44,7 +49,6 @@ const CaseTypePage = () => { const setSelectedTag = (item) => { if (selectedCaseTags.length < 5) { - console.log("item in setSelectedTag ---------------------->", item); const temp = [...selectedCaseTags, item.tagName]; setSelectedCaseTags(temp); console.log("selectedCaseTags", selectedCaseTags); @@ -71,10 +75,6 @@ const CaseTypePage = () => { setRadioValue(e.value); }; - const handleSave = () => { - console.log("handleSave"); - }; - async function saveCaseData() { if (isBusy) { return; @@ -112,6 +112,9 @@ const CaseTypePage = () => { value={leadAttorney} onChange={(e) => setLeadAttorney(e.target.value)} > +
+ {leadAttorneyError ?
{leadAttorneyError}
: <>} +
{ value={email} onChange={(e) => setEmail(e.target.value)} > + {emailError ?
{emailError}
: <>}
From 7dc90466a6fd82fc23f6092dd67e46cf568d5b7b Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Wed, 31 Jan 2024 18:14:10 -0600 Subject: [PATCH 05/10] morr --- src/Components/Case/CaseTypePage.js | 38 +++++++++++++++++------------ 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/Components/Case/CaseTypePage.js b/src/Components/Case/CaseTypePage.js index e307284..3009ab8 100644 --- a/src/Components/Case/CaseTypePage.js +++ b/src/Components/Case/CaseTypePage.js @@ -17,7 +17,7 @@ const CaseTypePage = () => { const { group } = appState; const appUserId = group ? group.appUserId : null; const [subCase, setSubCase] = useState(); - const [email, setEmail] = useState(""); + const [contactEmail, setContactEmail] = useState(""); const [contactName, setContactName] = useState(""); const [billingCode, setBillingCode] = useState(""); const [leadAttorney, setLeadAttorney] = useState(""); @@ -25,7 +25,7 @@ const CaseTypePage = () => { const [selectedCaseTags, setSelectedCaseTags] = useState([]); const [isBusy, setIsBusy] = useState(false); - const [emailError, setEmailError] = useState(""); + const [contactEmailError, setContactEmailError] = useState(""); const [leadAttorneyError, setLeadAttorneyError] = useState(""); const [caseTypeError, setCaseTypeError] = useState(false); const [clientPositionError, setClientPositionError] = useState(); @@ -70,6 +70,10 @@ const CaseTypePage = () => { { name: "Defendant", label: "Defendant", value: "Defendant" }, ]; + const validateInput = () => { + const leadAttorneyValid = leadAttorney.length > 2; + }; + const handleSetRadioValue = (e) => { console.log("e", e); setRadioValue(e.value); @@ -79,18 +83,22 @@ const CaseTypePage = () => { if (isBusy) { return; } - const dataValues = { - leadAttorney: leadAttorney, - }; - setIsBusy(true); - try { - await updateDoc(doc(db, "cases", caseId), dataValues); - } catch (err) { - console.log("Error updating case:", err); + const valid = validateInput(); + + if (valid) { + const dataValues = { + leadAttorney: leadAttorney, + }; + setIsBusy(true); + try { + await updateDoc(doc(db, "cases", caseId), dataValues); + setIsBusy(false); + } catch (err) { + console.log("Error updating case:", err); + setIsBusy(false); + } } - - setIsBusy(false); } return ( @@ -144,10 +152,10 @@ const CaseTypePage = () => { className="form-control" id="emailInput" placeholder="Contact Email" - value={email} - onChange={(e) => setEmail(e.target.value)} + value={contactEmail} + onChange={(e) => setContactEmail(e.target.value)} > - {emailError ?
{emailError}
: <>} + {contactEmailError ?
{contactEmailError}
: <>}
From 8969c33ef44b42bbcfcf8a14903bb7a5a449e3c1 Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Wed, 31 Jan 2024 19:00:29 -0600 Subject: [PATCH 06/10] more --- src/Components/Case/CaseTypePage.js | 39 ++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/src/Components/Case/CaseTypePage.js b/src/Components/Case/CaseTypePage.js index 3009ab8..a701dbf 100644 --- a/src/Components/Case/CaseTypePage.js +++ b/src/Components/Case/CaseTypePage.js @@ -70,15 +70,41 @@ const CaseTypePage = () => { { name: "Defendant", label: "Defendant", value: "Defendant" }, ]; - const validateInput = () => { - const leadAttorneyValid = leadAttorney.length > 2; - }; - const handleSetRadioValue = (e) => { console.log("e", e); setRadioValue(e.value); }; + const validateEmail = (email) => { + const result = /.+@.+\.[A-Za-z]+$/.test(email); + return result; + }; + + const validateInput = () => { + console.log(radioValue); + const leadAttorneyValid = leadAttorney.length > 2; + const contactEmailValid = validateEmail(contactEmail); + const caseTypeValid = selectedCaseTags.length > 0; + const clientPositionValid = + radioValue === "Defendant" || radioValue === "Plaintiff"; + const allValid = + leadAttorneyValid && + contactEmailValid && + caseTypeValid && + clientPositionValid; + + if (!leadAttorneyValid) { + } + if (!contactEmailValid) { + } + if (!caseTypeValid) { + } + if (!clientPositionValid) { + } + + return allValid; + }; + async function saveCaseData() { if (isBusy) { return; @@ -89,14 +115,19 @@ const CaseTypePage = () => { if (valid) { const dataValues = { leadAttorney: leadAttorney, + contactEmail: contactEmail, + contactName: contactName, + clientPosition: radioValue, }; setIsBusy(true); try { await updateDoc(doc(db, "cases", caseId), dataValues); setIsBusy(false); + navigate(`/casedetail/${caseId}`); } catch (err) { console.log("Error updating case:", err); setIsBusy(false); + navigate(`/dashboard`); } } } From c5d549fab1c0a4247ee8fcc49b7327e2b9f41393 Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Wed, 31 Jan 2024 19:02:22 -0600 Subject: [PATCH 07/10] more --- src/Components/Case/CaseTypePage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/Case/CaseTypePage.js b/src/Components/Case/CaseTypePage.js index a701dbf..58b1a09 100644 --- a/src/Components/Case/CaseTypePage.js +++ b/src/Components/Case/CaseTypePage.js @@ -198,7 +198,7 @@ const CaseTypePage = () => { options={parsedTags} minLength={1} ref={typeaheadRef} - placeholder="Case Type - start typing to search" + placeholder="Case Type - type to search, tab/click to select" onChange={(selected) => { let item = null; for (const currentItem of selected) { From 633c92eb7b3954ae491158f99d63031b1a62443c Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Wed, 31 Jan 2024 19:17:32 -0600 Subject: [PATCH 08/10] more --- src/Components/Case/CaseTypePage.js | 33 ++++++++++++++++++++++++----- src/styles/casetype-page.scss | 12 ++++++++++- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/Components/Case/CaseTypePage.js b/src/Components/Case/CaseTypePage.js index 58b1a09..ffd3441 100644 --- a/src/Components/Case/CaseTypePage.js +++ b/src/Components/Case/CaseTypePage.js @@ -94,12 +94,16 @@ const CaseTypePage = () => { clientPositionValid; if (!leadAttorneyValid) { + setLeadAttorneyError("Field cannot be left blank"); } if (!contactEmailValid) { + setContactEmailError("Field cannot be left blank"); } if (!caseTypeValid) { + setCaseTypeError("Field cannot be left blank"); } if (!clientPositionValid) { + setClientPositionError("You must make a selection"); } return allValid; @@ -123,7 +127,7 @@ const CaseTypePage = () => { try { await updateDoc(doc(db, "cases", caseId), dataValues); setIsBusy(false); - navigate(`/casedetail/${caseId}`); + navigate(`/casedetails/${caseId}`); } catch (err) { console.log("Error updating case:", err); setIsBusy(false); @@ -152,7 +156,11 @@ const CaseTypePage = () => { onChange={(e) => setLeadAttorney(e.target.value)} >
- {leadAttorneyError ?
{leadAttorneyError}
: <>} + {leadAttorneyError ? ( +
{leadAttorneyError}
+ ) : ( + <> + )}
@@ -186,7 +194,11 @@ const CaseTypePage = () => { value={contactEmail} onChange={(e) => setContactEmail(e.target.value)} > - {contactEmailError ?
{contactEmailError}
: <>} + {contactEmailError ? ( +
{contactEmailError}
+ ) : ( + <> + )}
@@ -208,6 +220,11 @@ const CaseTypePage = () => { typeaheadRef.current.clear(); }} /> + {caseTypeError ? ( +
{caseTypeError}
+ ) : ( + <> + )}
{selectedCaseTags.map((tag, i) => (
@@ -216,7 +233,7 @@ const CaseTypePage = () => { className="tag-ex-box" onClick={() => handleTagClick(tag)} > -
x
+
x
{tag}
@@ -233,9 +250,15 @@ const CaseTypePage = () => { onClick={(e) => handleSetRadioValue(e, "clientPosition")} />
+ {clientPositionError ? ( +
{clientPositionError}
+ ) : ( + <> + )} -
+ +