diff --git a/src/components/Directory/DirectorySchema.js b/src/components/Directory/DirectorySchema.js index 915cf10a..a8d2d489 100644 --- a/src/components/Directory/DirectorySchema.js +++ b/src/components/Directory/DirectorySchema.js @@ -6,7 +6,7 @@ export const ContactSchema = z contactCategoryId: z.string().nullable().optional(), address: z.string().optional(), description: z.string().min(1, { message: "Description is required" }), - projectIds: z.array(z.string()), // min(1, "Project is required") + projectIds: z.array(z.string()).nullable().optional(), // min(1, "Project is required") contactEmails: z .array( z.object({ @@ -39,7 +39,7 @@ export const ContactSchema = z }) ) .min(1, { message: "At least one tag is required" }), - bucketIds: z.array(z.string()).min(1,{message:"At least one Label required"}), +bucketIds: z.array(z.string()).nonempty({ message: "At least one label is required" }) }) // .refine((data) => { diff --git a/src/components/Directory/ManageBucket.jsx b/src/components/Directory/ManageBucket.jsx index 991d0340..86ba6dfe 100644 --- a/src/components/Directory/ManageBucket.jsx +++ b/src/components/Directory/ManageBucket.jsx @@ -12,8 +12,13 @@ import EmployeeList from "./EmployeeList"; import { useAllEmployees, useEmployees } from "../../hooks/useEmployees"; import { useSortableData } from "../../hooks/useSortableData"; import ConfirmModal from "../common/ConfirmModal"; +import {useHasUserPermission} from "../../hooks/useHasUserPermission"; +import {DIRECTORY_ADMIN, DIRECTORY_MANAGER} from "../../utils/constants"; +import {useProfile} from "../../hooks/useProfile"; -const ManageBucket = () => { +const ManageBucket = () => +{ + const {profile} =useProfile() const [bucketList, setBucketList] = useState([]); const { employeesList } = useAllEmployees(false); const [selectedEmployee, setSelectEmployee] = useState([]); @@ -22,7 +27,9 @@ const ManageBucket = () => { const [isSubmitting, setSubmitting] = useState(false); const [selected_bucket, select_bucket] = useState(null); const [deleteBucket, setDeleteBucket] = useState(null); - const [searchTerm, setSearchTerm] = useState(""); + const [ searchTerm, setSearchTerm ] = useState( "" ); + const DirManager = useHasUserPermission( DIRECTORY_MANAGER ) + const DirAdmin = useHasUserPermission(DIRECTORY_ADMIN) const { items: sortedBuckteList, requestSort, @@ -336,19 +343,25 @@ const ManageBucket = () => { {bucket.numberOfContacts} -
- { - select_bucket(bucket); - setAction_bucket(true); + + {(DirManager || + DirAdmin || + bucket?.createdBy?.id === + profile?.employeeInfo?.id) && ( +
+ { + select_bucket(bucket); + setAction_bucket(true); }} - > - setDeleteBucket(bucket?.id)} - > -
+ >
+ setDeleteBucket(bucket?.id)} + > +
+ )} ))} @@ -386,7 +399,7 @@ const ManageBucket = () => { setSelectEmployee(data)} - assignedEmployee={selected_bucket?.employeeIds} + bucket={selected_bucket} /> )} diff --git a/src/components/Directory/UpdateContact.jsx b/src/components/Directory/UpdateContact.jsx index 3878dc47..985229a3 100644 --- a/src/components/Directory/UpdateContact.jsx +++ b/src/components/Directory/UpdateContact.jsx @@ -387,13 +387,10 @@ await submitContact({ ...cleaned, id: existingContact.id }); )}
-
+
-
    +
      {bucketsLoaging &&

      Loading...

      } {buckets?.map((item) => (
    • ))} + {errors.bucketIds && ( + + {errors.bucketIds.message} + + )}
    - - {errors.BucketIds && ( - {errors.BucketIds.message} - )}