From b2d7349fc968022fffc27d8a2ec9f1881c3a0693 Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Sat, 20 Sep 2025 19:37:47 +0530 Subject: [PATCH] Adding search funcionality in Teams for Organization and Services. --- src/components/Project/Teams.jsx | 46 +++++++++++++++++--------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/src/components/Project/Teams.jsx b/src/components/Project/Teams.jsx index fd3815d4..42a219a7 100644 --- a/src/components/Project/Teams.jsx +++ b/src/components/Project/Teams.jsx @@ -154,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();