Skip to content

Commit 0ef6238

Browse files
authored
Merge pull request Expensify#53383 from abzokhattab/fix-category-approval-field-after-removing-workspace-members
Fix categories approval field after removing workspace members
2 parents 3e99d4d + f8f5c02 commit 0ef6238

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/libs/actions/Policy/Member.ts

+13-3
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import ONYXKEYS from '@src/ONYXKEYS';
2626
import type {InvitedEmailsToAccountIDs, PersonalDetailsList, Policy, PolicyEmployee, PolicyOwnershipChangeChecks, Report, ReportAction} from '@src/types/onyx';
2727
import type {PendingAction} from '@src/types/onyx/OnyxCommon';
2828
import type {JoinWorkspaceResolution} from '@src/types/onyx/OriginalMessage';
29-
import type {Attributes, Rate} from '@src/types/onyx/Policy';
29+
import type {ApprovalRule, Attributes, Rate} from '@src/types/onyx/Policy';
3030
import type {OnyxData} from '@src/types/onyx/Request';
3131
import {isEmptyObject} from '@src/types/utils/EmptyObject';
3232
import {createPolicyExpenseChats} from './Policy';
@@ -332,11 +332,21 @@ function removeMembers(accountIDs: number[], policyID: string) {
332332
}
333333
});
334334

335+
const approvalRules: ApprovalRule[] = policy?.rules?.approvalRules ?? [];
336+
const optimisticApprovalRules = approvalRules.filter((rule) => !emailList.includes(rule?.approver ?? ''));
337+
335338
const optimisticData: OnyxUpdate[] = [
336339
{
337340
onyxMethod: Onyx.METHOD.MERGE,
338341
key: policyKey,
339-
value: {employeeList: optimisticMembersState, approver: emailList.includes(policy?.approver ?? '') ? policy?.owner : policy?.approver},
342+
value: {
343+
employeeList: optimisticMembersState,
344+
approver: emailList.includes(policy?.approver ?? '') ? policy?.owner : policy?.approver,
345+
rules: {
346+
...(policy?.rules ?? {}),
347+
approvalRules: optimisticApprovalRules,
348+
},
349+
},
340350
},
341351
];
342352
optimisticData.push(...announceRoomMembers.onyxOptimisticData);
@@ -354,7 +364,7 @@ function removeMembers(accountIDs: number[], policyID: string) {
354364
{
355365
onyxMethod: Onyx.METHOD.MERGE,
356366
key: policyKey,
357-
value: {employeeList: failureMembersState, approver: policy?.approver},
367+
value: {employeeList: failureMembersState, approver: policy?.approver, rules: policy?.rules},
358368
},
359369
];
360370
failureData.push(...announceRoomMembers.onyxFailureData);

0 commit comments

Comments
 (0)