From 6d575acf8e4fa0b5dec2142652d27eac4b7f6fae Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Tue, 31 Dec 2024 15:25:19 +0700 Subject: [PATCH 1/2] fix approval mode is wrong when enabling again --- src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx index f4d05a09fba6..b970c80f1399 100644 --- a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx +++ b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx @@ -68,6 +68,9 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) { }), [personalDetails, policy?.employeeList, policy?.owner, policyApproverEmail], ); + + const isAdvanceApproval = approvalWorkflows.length > 1 || (approvalWorkflows?.at(0)?.approvers ?? []).length > 1; + const approvalMode = isAdvanceApproval ? CONST.POLICY.APPROVAL_MODE.ADVANCED : CONST.POLICY.APPROVAL_MODE.BASIC; const displayNameForAuthorizedPayer = useMemo( () => PersonalDetailsUtils.getPersonalDetailByEmail(policy?.achAccount?.reimburser ?? '')?.displayName ?? policy?.achAccount?.reimburser, [policy?.achAccount?.reimburser], @@ -163,7 +166,7 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) { subtitle: translate('workflowsPage.addApprovalsDescription'), switchAccessibilityLabel: translate('workflowsPage.addApprovalsDescription'), onToggle: (isEnabled: boolean) => { - Policy.setWorkspaceApprovalMode(route.params.policyID, policy?.owner ?? '', isEnabled ? CONST.POLICY.APPROVAL_MODE.BASIC : CONST.POLICY.APPROVAL_MODE.OPTIONAL); + Policy.setWorkspaceApprovalMode(route.params.policyID, policy?.owner ?? '', isEnabled ? approvalMode : CONST.POLICY.APPROVAL_MODE.OPTIONAL); }, subMenuItems: ( <> From 5d6438912d271c71c283718ae962dbde1fd54ecc Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Tue, 31 Dec 2024 15:40:38 +0700 Subject: [PATCH 2/2] fix lint --- src/libs/actions/Policy/Policy.ts | 5 ++++- src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index 181424598a70..5bf6f6e1e928 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -624,7 +624,10 @@ function setWorkspacePayer(policyID: string, reimburserEmail: string) { API.write(WRITE_COMMANDS.SET_WORKSPACE_PAYER, params, {optimisticData, failureData, successData}); } -function clearPolicyErrorField(policyID: string, fieldName: string) { +function clearPolicyErrorField(policyID: string | undefined, fieldName: string) { + if (!policyID) { + return; + } Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {errorFields: {[fieldName]: null}}); } diff --git a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx index b970c80f1399..0a1a8bcea707 100644 --- a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx +++ b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx @@ -70,7 +70,7 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) { ); const isAdvanceApproval = approvalWorkflows.length > 1 || (approvalWorkflows?.at(0)?.approvers ?? []).length > 1; - const approvalMode = isAdvanceApproval ? CONST.POLICY.APPROVAL_MODE.ADVANCED : CONST.POLICY.APPROVAL_MODE.BASIC; + const updateApprovalMode = isAdvanceApproval ? CONST.POLICY.APPROVAL_MODE.ADVANCED : CONST.POLICY.APPROVAL_MODE.BASIC; const displayNameForAuthorizedPayer = useMemo( () => PersonalDetailsUtils.getPersonalDetailByEmail(policy?.achAccount?.reimburser ?? '')?.displayName ?? policy?.achAccount?.reimburser, [policy?.achAccount?.reimburser], @@ -166,7 +166,7 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) { subtitle: translate('workflowsPage.addApprovalsDescription'), switchAccessibilityLabel: translate('workflowsPage.addApprovalsDescription'), onToggle: (isEnabled: boolean) => { - Policy.setWorkspaceApprovalMode(route.params.policyID, policy?.owner ?? '', isEnabled ? approvalMode : CONST.POLICY.APPROVAL_MODE.OPTIONAL); + Policy.setWorkspaceApprovalMode(route.params.policyID, policy?.owner ?? '', isEnabled ? updateApprovalMode : CONST.POLICY.APPROVAL_MODE.OPTIONAL); }, subMenuItems: ( <> @@ -263,7 +263,7 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) { pendingAction={policy?.pendingFields?.reimburser} shouldDisableOpacity={isOffline && !!policy?.pendingFields?.reimbursementChoice && !!policy?.pendingFields?.reimburser} errors={ErrorUtils.getLatestErrorField(policy ?? {}, CONST.POLICY.COLLECTION_KEYS.REIMBURSER)} - onClose={() => Policy.clearPolicyErrorField(policy?.id ?? '', CONST.POLICY.COLLECTION_KEYS.REIMBURSER)} + onClose={() => Policy.clearPolicyErrorField(policy?.id, CONST.POLICY.COLLECTION_KEYS.REIMBURSER)} errorRowStyles={[styles.ml7]} >