diff --git a/src/components/Project/Teams.jsx b/src/components/Project/Teams.jsx index ab048c89..f65d90dd 100644 --- a/src/components/Project/Teams.jsx +++ b/src/components/Project/Teams.jsx @@ -36,10 +36,11 @@ const Teams = () => { const [activeEmployee, setActiveEmployee] = useState(true); const [deleteEmployee, setDeleteEmplyee] = useState(null); const [searchTerm, setSearchTerm] = useState(""); // State for search term + const [selectedService, setSelectedService] = useState(null); + const { data: assignedServices, isLoading: servicesLoading } = useProjectAssignedServices(projectId); const handleToggleActive = e => setActiveEmployee(e.target.checked); - const [selectedService, setSelectedService] = useState(""); const handleServiceChange = (e) => { setSelectedService(e.target.value); @@ -53,7 +54,7 @@ const Teams = () => { projectEmployees, loading: employeeLodaing, refetch, - } = useEmployeesByProjectAllocated(projectId); + } = useEmployeesByProjectAllocated(projectId,selectedService); const { mutate: submitAllocations, isPending, @@ -153,31 +154,35 @@ const Teams = () => { setEmpJobRoles(data); } }, [data]); +const filterAndSearchEmployees = useCallback(() => { + const statusFiltered = employees.filter((emp) => + activeEmployee ? emp.isActive : !emp.isActive + ); - const filterAndSearchEmployees = useCallback(() => { - const statusFiltered = employees.filter((emp) => - activeEmployee ? emp.isActive : !emp.isActive + if (searchTerm === "") { + setFilteredEmployees(statusFiltered); + return; + } + + const lowercasedSearchTerm = searchTerm.toLowerCase(); + + const searchedAndFiltered = statusFiltered.filter((item) => { + const fullName = `${item.firstName} ${item.middleName} ${item.lastName}`.toLowerCase(); + const roleName = getRole(item.jobRoleId).toLowerCase(); + const orgName = (item.organizationName || "").toLowerCase(); + const serviceName = (item.serviceName || "").toLowerCase(); + + return ( + fullName.includes(lowercasedSearchTerm) || + roleName.includes(lowercasedSearchTerm) || + orgName.includes(lowercasedSearchTerm) || + serviceName.includes(lowercasedSearchTerm) ); + }); - if (searchTerm === "") { - setFilteredEmployees(statusFiltered); - return; - } + setFilteredEmployees(searchedAndFiltered); +}, [employees, activeEmployee, searchTerm, getRole]); - const lowercasedSearchTerm = searchTerm.toLowerCase(); - const searchedAndFiltered = statusFiltered.filter((item) => { - const fullName = - `${item.firstName} ${item.middleName} ${item.lastName}`.toLowerCase(); - const roleName = getRole(item.jobRoleId).toLowerCase(); - - return ( - fullName.includes(lowercasedSearchTerm) || - roleName.includes(lowercasedSearchTerm) - ); - }); - - setFilteredEmployees(searchedAndFiltered); - }, [employees, activeEmployee, searchTerm, getRole]); useEffect(() => { filterAndSearchEmployees(); @@ -264,50 +269,38 @@ const Teams = () => {