diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx index 408ac823868..c17f7a55054 100644 --- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx +++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx @@ -70,11 +70,14 @@ function WorkflowsApprovalsApproverPage({policy, personalDetails, isLoadingRepor setSelectedApproverEmail(currentApprover.email); }, [approvalWorkflow?.approvers, approverIndex]); + const employeeList = policy?.employeeList; + const approversFromWorkflow = approvalWorkflow?.approvers ?? []; + const isDefault = approvalWorkflow?.isDefault; const sections: ApproverSection[] = useMemo(() => { const approvers: SelectionListApprover[] = []; - if (policy?.employeeList) { - const availableApprovers = Object.values(policy.employeeList) + if (employeeList) { + const availableApprovers = Object.values(employeeList) .map((employee): SelectionListApprover | null => { const isAdmin = employee?.role === CONST.REPORT.ROLE.ADMIN; const email = employee.email; @@ -84,17 +87,17 @@ function WorkflowsApprovalsApproverPage({policy, personalDetails, isLoadingRepor } // Do not allow the same email to be added twice - const isEmailAlreadyInApprovers = approvalWorkflow?.approvers.some((approver, index) => approver?.email === email && index !== approverIndex); + const isEmailAlreadyInApprovers = approversFromWorkflow.some((approver, index) => approver?.email === email && index !== approverIndex); if (isEmailAlreadyInApprovers && selectedApproverEmail !== email) { return null; } // Do not allow the default approver to be added as the first approver - if (!approvalWorkflow?.isDefault && approverIndex === 0 && defaultApprover === email) { + if (!isDefault && approverIndex === 0 && defaultApprover === email) { return null; } - const policyMemberEmailsToAccountIDs = PolicyUtils.getMemberAccountIDsForWorkspace(policy?.employeeList); + const policyMemberEmailsToAccountIDs = PolicyUtils.getMemberAccountIDsForWorkspace(employeeList); const accountID = Number(policyMemberEmailsToAccountIDs[email] ?? ''); const {avatar, displayName = email} = personalDetails?.[accountID] ?? {}; @@ -130,13 +133,13 @@ function WorkflowsApprovalsApproverPage({policy, personalDetails, isLoadingRepor }, ]; }, [ - approvalWorkflow?.approvers, - approvalWorkflow?.isDefault, + approversFromWorkflow, + isDefault, approverIndex, debouncedSearchTerm, defaultApprover, personalDetails, - policy?.employeeList, + employeeList, selectedApproverEmail, translate, ]); @@ -145,7 +148,7 @@ function WorkflowsApprovalsApproverPage({policy, personalDetails, isLoadingRepor const nextStep = useCallback(() => { if (selectedApproverEmail) { - const policyMemberEmailsToAccountIDs = PolicyUtils.getMemberAccountIDsForWorkspace(policy?.employeeList); + const policyMemberEmailsToAccountIDs = PolicyUtils.getMemberAccountIDsForWorkspace(employeeList); const accountID = Number(policyMemberEmailsToAccountIDs[selectedApproverEmail] ?? ''); const {avatar, displayName = selectedApproverEmail} = personalDetails?.[accountID] ?? {}; Workflow.setApprovalWorkflowApprover( @@ -167,7 +170,7 @@ function WorkflowsApprovalsApproverPage({policy, personalDetails, isLoadingRepor const firstApprover = approvalWorkflow?.approvers?.[0]?.email ?? ''; Navigation.goBack(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_EDIT.getRoute(route.params.policyID, firstApprover)); } - }, [approvalWorkflow, approverIndex, personalDetails, policy?.employeeList, route.params.policyID, selectedApproverEmail]); + }, [approvalWorkflow, approverIndex, personalDetails, employeeList, route.params.policyID, selectedApproverEmail]); const button = useMemo(() => { let buttonText = isInitialCreationFlow ? translate('common.next') : translate('common.save');