aded validation for tags and rename label to bucket

This commit is contained in:
Pramod Mahajan 2025-05-29 20:05:43 +05:30 committed by pramod.mahajan
parent 73f57bb59f
commit 36e7755b7d

View File

@ -20,8 +20,6 @@ import SelectMultiple from "../common/SelectMultiple";
import { ContactSchema } from "./DirectorySchema"; import { ContactSchema } from "./DirectorySchema";
import InputSuggestions from "../common/InputSuggestion"; import InputSuggestions from "../common/InputSuggestion";
const ManageDirectory = ({ submitContact, onCLosed }) => { const ManageDirectory = ({ submitContact, onCLosed }) => {
const selectedMaster = useSelector( const selectedMaster = useSelector(
(store) => store.localVariables.selectedMaster (store) => store.localVariables.selectedMaster
@ -34,7 +32,7 @@ const ManageDirectory = ({ submitContact, onCLosed }) => {
const { projects, loading: projectLoading } = useProjects(); const { projects, loading: projectLoading } = useProjects();
const { contactCategory, loading: contactCategoryLoading } = const { contactCategory, loading: contactCategoryLoading } =
useContactCategory(); useContactCategory();
const {organizationList,loading:orgLoading} = useOrganization() const { organizationList, loading: orgLoading } = useOrganization();
const { contactTags, loading: Tagloading } = useContactTags(); const { contactTags, loading: Tagloading } = useContactTags();
const [IsSubmitting, setSubmitting] = useState(false); const [IsSubmitting, setSubmitting] = useState(false);
const dispatch = useDispatch(); const dispatch = useDispatch();
@ -88,7 +86,6 @@ useEffect(() => {
} }
}, [emailFields.length, phoneFields.length]); }, [emailFields.length, phoneFields.length]);
const handleAddEmail = async () => { const handleAddEmail = async () => {
const emails = getValues("contactEmails"); const emails = getValues("contactEmails");
const lastIndex = emails.length - 1; const lastIndex = emails.length - 1;
@ -124,8 +121,7 @@ useEffect(() => {
setValue("bucketIds", updated, { shouldValidate: true }); setValue("bucketIds", updated, { shouldValidate: true });
}; };
const onSubmit = ( data ) => const onSubmit = (data) => {
{
const cleaned = { const cleaned = {
...data, ...data,
contactEmails: (data.contactEmails || []).filter( contactEmails: (data.contactEmails || []).filter(
@ -139,7 +135,7 @@ useEffect(() => {
setSubmitting(true); setSubmitting(true);
submitContact(cleaned, reset, setSubmitting); submitContact(cleaned, reset, setSubmitting);
}; };
const orgValue = watch("organization") const orgValue = watch("organization");
const handleClosed = () => { const handleClosed = () => {
onCLosed(); onCLosed();
@ -170,11 +166,6 @@ useEffect(() => {
onChange={(val) => setValue("organization", val)} onChange={(val) => setValue("organization", val)}
error={errors.organization?.message} error={errors.organization?.message}
/> />
{errors.organization && (
<small className="danger-text">
{errors.organization.message}
</small>
)}
</div> </div>
</div> </div>
<div className="row mt-1"> <div className="row mt-1">
@ -216,7 +207,10 @@ useEffect(() => {
// onClick={handleAddEmail} // onClick={handleAddEmail}
// style={{ width: "24px", height: "24px" }} // style={{ width: "24px", height: "24px" }}
// > // >
<i className="bx bx-plus-circle bx-xs ms-1 cursor-pointer text-primary" onClick={handleAddEmail} /> <i
className="bx bx-plus-circle bx-xs ms-1 cursor-pointer text-primary"
onClick={handleAddEmail}
/>
) : ( ) : (
// <button // <button
// type="button" // type="button"
@ -224,8 +218,10 @@ useEffect(() => {
// onClick={() => removeEmail(index)} // onClick={() => removeEmail(index)}
// style={{ width: "24px", height: "24px" }} // style={{ width: "24px", height: "24px" }}
// > // >
<i className="bx bx-minus-circle bx-xs ms-1 cursor-pointer text-primary" onClick={() => removeEmail(index)} /> <i
className="bx bx-minus-circle bx-xs ms-1 cursor-pointer text-primary"
onClick={() => removeEmail(index)}
/>
)} )}
</div> </div>
{errors.contactEmails?.[index]?.emailAddress && ( {errors.contactEmails?.[index]?.emailAddress && (
@ -275,8 +271,10 @@ useEffect(() => {
// onClick={handleAddPhone} // onClick={handleAddPhone}
// style={{ width: "24px", height: "24px" }} // style={{ width: "24px", height: "24px" }}
// > // >
<i className="bx bx-plus-circle bx-xs ms-1 cursor-pointer text-primary" onClick={handleAddPhone} /> <i
className="bx bx-plus-circle bx-xs ms-1 cursor-pointer text-primary"
onClick={handleAddPhone}
/>
) : ( ) : (
// <button // <button
// type="button" // type="button"
@ -284,8 +282,10 @@ useEffect(() => {
// onClick={() => removePhone(index)} // onClick={() => removePhone(index)}
// style={{ width: "24px", height: "24px" }} // style={{ width: "24px", height: "24px" }}
// > // >
<i className="bx bx-minus-circle bx-xs ms-1 cursor-pointer text-danager" onClick={() => removePhone(index)} /> <i
className="bx bx-minus-circle bx-xs ms-1 cursor-pointer text-danager"
onClick={() => removePhone(index)}
/>
)} )}
</div> </div>
{errors.contactPhones?.[index]?.phoneNumber && ( {errors.contactPhones?.[index]?.phoneNumber && (
@ -342,9 +342,7 @@ useEffect(() => {
IsLoading={projectLoading} IsLoading={projectLoading}
/> />
{errors.projectIds && ( {errors.projectIds && (
<small className="danger-text"> <small className="danger-text">{errors.projectIds.message}</small>
{errors.projectIds.message}
</small>
)} )}
</div> </div>
</div> </div>
@ -352,18 +350,14 @@ useEffect(() => {
<div className="col-12 text-start"> <div className="col-12 text-start">
<TagInput name="tags" label="Tags" options={contactTags} /> <TagInput name="tags" label="Tags" options={contactTags} />
{errors.tags && ( {errors.tags && (
<small className="danger-text"> <small className="danger-text">{errors.tags.message}</small>
{errors.tags.message}
</small>
)} )}
</div> </div>
<div className="row"> <div className="row">
<div className="col-md-12 mt-1 text-start"> <div className="col-md-12 mt-1 text-start">
<label className="form-label ">Select Label</label> <label className="form-label ">Select Bucket</label>
<ul <ul className="d-flex flex-wrap px-1 list-unstyled mb-0">
className="d-flex flex-wrap px-1 list-unstyled mb-0"
>
{bucketsLoaging && <p>Loading...</p>} {bucketsLoaging && <p>Loading...</p>}
{buckets?.map((item) => ( {buckets?.map((item) => (
<li <li
@ -387,11 +381,12 @@ useEffect(() => {
</div> </div>
</li> </li>
))} ))}
</ul> {errors.bucketIds && (
<small className="danger-text mt-0">
{errors.BucketIds && ( {errors.bucketIds.message}
<small className="text-danger">{errors.BucketIds.message}</small> </small>
)} )}
</ul>
</div> </div>
</div> </div>