From 36e7755b7d241b4fa9dca59c0d5edaa52d10b308 Mon Sep 17 00:00:00 2001 From: Pramod Mahajan Date: Thu, 29 May 2025 20:05:43 +0530 Subject: [PATCH] aded validation for tags and rename label to bucket --- src/components/Directory/ManageDirectory.jsx | 125 +++++++++---------- 1 file changed, 60 insertions(+), 65 deletions(-) diff --git a/src/components/Directory/ManageDirectory.jsx b/src/components/Directory/ManageDirectory.jsx index 003b7696..9f4d33fa 100644 --- a/src/components/Directory/ManageDirectory.jsx +++ b/src/components/Directory/ManageDirectory.jsx @@ -17,24 +17,22 @@ import { changeMaster } from "../../slices/localVariablesSlice"; import { useBuckets, useOrganization } from "../../hooks/useDirectory"; import { useProjects } from "../../hooks/useProjects"; import SelectMultiple from "../common/SelectMultiple"; -import {ContactSchema} from "./DirectorySchema"; +import { ContactSchema } from "./DirectorySchema"; import InputSuggestions from "../common/InputSuggestion"; - - const ManageDirectory = ({ submitContact, onCLosed }) => { const selectedMaster = useSelector( (store) => store.localVariables.selectedMaster ); - const [ categoryData, setCategoryData ] = useState( [] ); - + const [categoryData, setCategoryData] = useState([]); + const [TagsData, setTagsData] = useState([]); const { data, loading } = useMaster(); const { buckets, loading: bucketsLoaging } = useBuckets(); const { projects, loading: projectLoading } = useProjects(); const { contactCategory, loading: contactCategoryLoading } = useContactCategory(); - const {organizationList,loading:orgLoading} = useOrganization() + const { organizationList, loading: orgLoading } = useOrganization(); const { contactTags, loading: Tagloading } = useContactTags(); const [IsSubmitting, setSubmitting] = useState(false); const dispatch = useDispatch(); @@ -79,15 +77,14 @@ const ManageDirectory = ({ submitContact, onCLosed }) => { remove: removePhone, } = useFieldArray({ control, name: "contactPhones" }); -useEffect(() => { - if (emailFields.length === 0) { - appendEmail({ label: "Work", emailAddress: "" }); - } - if (phoneFields.length === 0) { - appendPhone({ label: "Office", phoneNumber: "" }); - } -}, [emailFields.length, phoneFields.length]); - + useEffect(() => { + if (emailFields.length === 0) { + appendEmail({ label: "Work", emailAddress: "" }); + } + if (phoneFields.length === 0) { + appendPhone({ label: "Office", phoneNumber: "" }); + } + }, [emailFields.length, phoneFields.length]); const handleAddEmail = async () => { const emails = getValues("contactEmails"); @@ -124,22 +121,21 @@ useEffect(() => { setValue("bucketIds", updated, { shouldValidate: true }); }; - const onSubmit = ( data ) => - { - const cleaned = { - ...data, - contactEmails: (data.contactEmails || []).filter( - (e) => e.emailAddress?.trim() !== "" - ), - contactPhones: (data.contactPhones || []).filter( - (p) => p.phoneNumber?.trim() !== "" - ), - }; + const onSubmit = (data) => { + const cleaned = { + ...data, + contactEmails: (data.contactEmails || []).filter( + (e) => e.emailAddress?.trim() !== "" + ), + contactPhones: (data.contactPhones || []).filter( + (p) => p.phoneNumber?.trim() !== "" + ), + }; setSubmitting(true); submitContact(cleaned, reset, setSubmitting); }; - const orgValue = watch("organization") + const orgValue = watch("organization"); const handleClosed = () => { onCLosed(); @@ -165,16 +161,11 @@ useEffect(() => {
setValue("organization", val)} - error={errors.organization?.message} - /> - {errors.organization && ( - - {errors.organization.message} - - )} + organizationList={organizationList} + value={getValues("organization") || ""} + onChange={(val) => setValue("organization", val)} + error={errors.organization?.message} + />
@@ -216,7 +207,10 @@ useEffect(() => { // onClick={handleAddEmail} // style={{ width: "24px", height: "24px" }} // > - + ) : ( //
{errors.contactEmails?.[index]?.emailAddress && ( @@ -275,8 +271,10 @@ useEffect(() => { // onClick={handleAddPhone} // style={{ width: "24px", height: "24px" }} // > - - + ) : ( //