From 148f4b79e7d5f26ee3f65b76a2129a632e8f3dc5 Mon Sep 17 00:00:00 2001 From: Pramod Mahajan Date: Sun, 4 May 2025 19:38:32 +0530 Subject: [PATCH] added loading indicator for project employee list during API call --- src/components/Project/Teams.jsx | 41 +++++++++++++++++++------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/src/components/Project/Teams.jsx b/src/components/Project/Teams.jsx index fe554574..e6029987 100644 --- a/src/components/Project/Teams.jsx +++ b/src/components/Project/Teams.jsx @@ -21,21 +21,27 @@ const Teams = ({ project }) => { const [employees, setEmployees] = useState([]); const [filteredEmployees, setFilteredEmployees] = useState([]); const [ removingEmployeeId, setRemovingEmployeeId ] = useState( null ); - const [assignedLoading,setAssignedLoading]= useState(false) + const [ assignedLoading, setAssignedLoading ] = useState( false ) + const [employeeLodaing,setEmployeeLoading] = useState(false) const HasAssignUserPermission = useHasUserPermission(ASSIGN_TO_PROJECT); const fetchEmployees = async () => { - try { + try + { + setEmployeeLoading(true) + // if (!empRoles) { ProjectRepository.getProjectAllocation(project.id) .then((response) => { setEmployees(response.data); - setFilteredEmployees(response.data.filter((emp) => emp.isActive)); + setFilteredEmployees( response.data.filter( ( emp ) => emp.isActive ) ); + setEmployeeLoading(false) }) .catch((error) => { console.error(error); - setError("Failed to fetch data."); + setError( "Failed to fetch data." ); + setEmployeeLoading(false) }); } catch (err) { setError("Failed to fetch activities."); @@ -184,7 +190,8 @@ const Teams = ({ project }) => {
- {employees && employees.length > 0 ? ( + {employeeLodaing && (

Loading..

)} + {!employeeLodaing && employees && employees.length > 0 && ( @@ -197,7 +204,7 @@ const Teams = ({ project }) => { {filteredEmployees && - filteredEmployees.map((item) => ( + filteredEmployees.map( ( item ) => ( - ))} + ) )}
{" "} - {moment(item.allocationDate).format( + {moment( item.allocationDate ).format( "DD-MMM-YYYY" )}{" "} {item.reAllocationDate - ? moment(item.reAllocationDate).format( - "DD-MMM-YYYY" - ) + ? moment( item.reAllocationDate ).format( + "DD-MMM-YYYY" + ) : "Present"} - {getRole(item.jobRoleId)} + {getRole( item.jobRoleId )} @@ -247,7 +255,7 @@ const Teams = ({ project }) => { type="button" title="Remove from project" className="btn p-0 dropdown-toggle hide-arrow" - onClick={() => removeAllocation(item)} + onClick={() => removeAllocation( item )} > {" "} {removingEmployeeId === item.id ?
{ role="status" > Loading... -
:} + : } )} {!item.isActive && Not in project}
- ) : ( + )} + {(!employeeLodaing && employees.length == 0 ) && ( No employees assigned to the project )}