Merge pull request #67 from kjannette/hag2

Hag2
This commit is contained in:
S Jannette
2024-01-31 20:44:39 -06:00
committed by GitHub
11 changed files with 135 additions and 42 deletions

View File

@@ -17,13 +17,18 @@ 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("");
const [radioValue, setRadioValue] = useState();
const [radioValue, setRadioValue] = useState("");
const [selectedCaseTags, setSelectedCaseTags] = useState([]);
const [isBusy, setIsBusy] = useState(false);
const [contactEmailError, setContactEmailError] = useState("");
const [leadAttorneyError, setLeadAttorneyError] = useState("");
const [caseTypeError, setCaseTypeError] = useState(false);
const [clientPositionError, setClientPositionError] = useState();
const typeaheadRef = useRef();
function getCase() {
@@ -43,10 +48,20 @@ const CaseTypePage = () => {
useEffect(getCase, [caseId, appUserId]);
const setSelectedTag = (item) => {
console.log("item in setSelectedTag ---------------------->", item);
if (selectedCaseTags.length < 5) {
const temp = [...selectedCaseTags, item.tagName];
setSelectedCaseTags(temp);
console.log("selectedCaseTags", selectedCaseTags);
}
};
const handleTagClick = (arg) => {
const temp = selectedCaseTags;
const foo = temp.filter((tag) => {
if (tag != arg) {
return tag;
}
});
setSelectedCaseTags(foo);
};
const radioOptions = [
@@ -55,30 +70,78 @@ const CaseTypePage = () => {
];
const handleSetRadioValue = (e) => {
console.log("e", e);
setRadioValue(e.value);
};
const handleSave = () => {
console.log("handleSave");
const validateEmail = (email) => {
const result = /.+@.+\.[A-Za-z]+$/.test(email);
return result;
};
const validateInput = () => {
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) {
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;
};
async function saveCaseData() {
if (isBusy) {
return;
}
const valid = validateInput();
if (valid) {
const recordTags = [];
selectedCaseTags.forEach((tag) => {
parsedTags.forEach((item) => {
if (item.tagName.toLowerCase() === tag.toLowerCase()) {
recordTags.push(item);
}
});
});
const dataValues = {
leadAttorney: leadAttorney,
contactEmail: contactEmail,
contactName: contactName,
clientPosition: radioValue,
caseTags: recordTags,
};
setIsBusy(true);
try {
await updateDoc(doc(db, "cases", caseId), dataValues);
setIsBusy(false);
navigate(`/casedetails/${caseId}`);
} catch (err) {
console.log("Error updating case:", err);
}
setIsBusy(false);
navigate(`/dashboard`);
}
}
}
return (
@@ -100,6 +163,13 @@ const CaseTypePage = () => {
value={leadAttorney}
onChange={(e) => setLeadAttorney(e.target.value)}
></input>
<div>
{leadAttorneyError ? (
<div className="casetype-error">{leadAttorneyError}</div>
) : (
<></>
)}
</div>
</div>
<div className="type-col">
<input
@@ -129,9 +199,14 @@ 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)}
></input>
{contactEmailError ? (
<div className="casetype-error">{contactEmailError}</div>
) : (
<></>
)}
</div>
</div>
<div className="type-row">
@@ -143,7 +218,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) {
@@ -153,12 +228,20 @@ const CaseTypePage = () => {
typeaheadRef.current.clear();
}}
/>
{caseTypeError ? (
<div className="casetype-error">{caseTypeError}</div>
) : (
<></>
)}
<div className="case-tag-container">
{selectedCaseTags.map((tag, i) => (
<div className="tag-container">
<div className="tag-box">
<div className="tag-ex-box">
<div className="tag-ex"> x</div>
<div
className="tag-ex-box"
onClick={() => handleTagClick(tag)}
>
<div className="tag-ex">x</div>
</div>
<div className="casetag-name">{tag}</div>
</div>
@@ -175,9 +258,15 @@ const CaseTypePage = () => {
onClick={(e) => handleSetRadioValue(e, "clientPosition")}
/>
</div>
{clientPositionError ? (
<div className="casetype-error">{clientPositionError}</div>
) : (
<></>
)}
</div>
</div>
<div className="caseType-button-container">
<div className="casetype-button-container">
<Button
className="pt-2 pb-2 mr-2 primary-button"
onClick={saveCaseData}

View File

@@ -171,7 +171,7 @@ const DocumentListPage = ({ perPage }) => {
if (!group) {
return null;
}
console.log("allDocs", allDocs);
const DesktopContent = () => {
return (
<>

View File

@@ -18,8 +18,6 @@ const ConfirmModal = ({
setIssueText,
reportDoc,
}) => {
console.log("isReport", isReport);
return (
<Modal show="true" onHide={onCancel} size="lg">
<Modal.Header closeButton>

View File

@@ -126,7 +126,7 @@ const UploadModal = (props) => {
try {
const response = await processFile();
console.log("response in upload modal", response);
if (response.res?.status !== 200) {
saveToDb(response.uuidName);
return;

View File

@@ -3,9 +3,8 @@ import { AuthContext } from "../Context/AuthProvider";
import { Navigate } from "react-router-dom";
const PrivateRoute = ({ children }) => {
console.log("AuthContext", AuthContext);
const { currentUserEmail } = useContext(AuthContext);
console.log("currentUserEmail", currentUserEmail);
return currentUserEmail === null ? <Navigate to="/" /> : children;
};

View File

@@ -287,7 +287,6 @@ const SignupPage = () => {
const data = await response.json();
console.log("data in stripe auth call -------------++++++++++++++", data);
//subscriptionId = response.subscriptionId;
//customerId = response.customerId;
@@ -303,7 +302,6 @@ const SignupPage = () => {
const handleSignup = async (e) => {
e.preventDefault();
console.log("handleSignup");
const paymentDataValues = validatePaymentData();
if (paymentDataValues === null) {
@@ -323,7 +321,7 @@ const SignupPage = () => {
paymentDataValues,
dataValues
);
console.log("----------------------------->>>>>>>>>>>>>>>>>data", data);
const customerId = data.data.customerId;
const subscriptionId = data.data.subscriptionId;
@@ -350,7 +348,7 @@ const SignupPage = () => {
}
} catch (error) {
setIsBusy(false);
console.log("-------->error", error);
setNotice(
error.message || "Sorry, something went wrong. Please try again."
);

View File

@@ -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",
},
},

View File

@@ -284,7 +284,7 @@ export const DocCard = (props) => {
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);
//console.log("report documentId, docType", documentId, docType);
};
return (

View File

@@ -14,7 +14,7 @@ const Radio = (props) => {
details,
isAnnual,
} = props;
console.log("isAnnual in radio", isAnnual);
const classCheckbox = "checkbox";
const classOption = "option";
const index = isAnnual === 1 ? Number("1") : Number("0");

View File

@@ -15,7 +15,7 @@ const TextInput = (props) => {
type,
disabled,
} = props;
console.log("inputClassName", inputClassName);
return (
<div
className={

View File

@@ -33,7 +33,6 @@
display: flex;
flex-direction: row;
flex-wrap: wrap;
border: 1px solid red;
padding-top: 8px;
}
@@ -69,7 +68,9 @@
padding: 0px 8px;
}
.caseType-button-container {
.casetype-button-container {
margin-top: 20px;
margin-right: 16px;
display: flex;
flex-direction: column;
align-items: flex-end;
@@ -82,3 +83,11 @@
border: 1px solid #eaeaea;
border-radius: 10px;
}
.casetype-error {
font-size: 0.84rem;
margin-top: 2px;
margin-left: 2px;
padding-left: 6px;
color: red;
}