@@ -90,6 +90,7 @@ import type {
9090 PersonalDetailsList ,
9191 Policy ,
9292 PolicyCategory ,
93+ PolicyEmployee ,
9394 ReimbursementAccount ,
9495 Report ,
9596 ReportAction ,
@@ -585,6 +586,17 @@ function setWorkspaceApprovalMode(policyID: string, approver: string, approvalMo
585586 // This will be fixed as part of https://github.com/Expensify/Expensify/issues/507850
586587 // eslint-disable-next-line deprecation/deprecation
587588 const policy = getPolicy ( policyID ) ;
589+ const updatedEmployeeList : Record < string , PolicyEmployee > = { } ;
590+
591+ if ( approvalMode === CONST . POLICY . APPROVAL_MODE . OPTIONAL ) {
592+ Object . keys ( policy ?. employeeList ?? { } ) . forEach ( ( employee ) => {
593+ updatedEmployeeList [ employee ] = {
594+ ...policy ?. employeeList ?. [ employee ] ,
595+ submitsTo : approver ,
596+ forwardsTo : '' ,
597+ } ;
598+ } ) ;
599+ }
588600
589601 const value = {
590602 approver,
@@ -598,6 +610,7 @@ function setWorkspaceApprovalMode(policyID: string, approver: string, approvalMo
598610 value : {
599611 ...value ,
600612 pendingFields : { approvalMode : CONST . RED_BRICK_ROAD_PENDING_ACTION . UPDATE } ,
613+ employeeList : approvalMode === CONST . POLICY . APPROVAL_MODE . OPTIONAL ? updatedEmployeeList : policy ?. employeeList ,
601614 } ,
602615 } ,
603616 ] ;
@@ -611,6 +624,7 @@ function setWorkspaceApprovalMode(policyID: string, approver: string, approvalMo
611624 approvalMode : policy ?. approvalMode ,
612625 pendingFields : { approvalMode : null } ,
613626 errorFields : { approvalMode : ErrorUtils . getMicroSecondOnyxErrorWithTranslationKey ( 'workflowsApproverPage.genericErrorMessage' ) } ,
627+ employeeList : policy ?. employeeList ,
614628 } ,
615629 } ,
616630 ] ;
0 commit comments