From a3a73371656038cc8b7d0180f4e9d0b7d0bfec2b Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Tue, 17 Jan 2023 15:32:40 -0700 Subject: [PATCH] fix setWorkspaceMemberErrors --- src/libs/actions/Policy.js | 7 +++--- src/pages/workspace/WorkspaceMembersPage.js | 25 ++++++++++++++------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/libs/actions/Policy.js b/src/libs/actions/Policy.js index 17c5a234fdef..101c13e66073 100644 --- a/src/libs/actions/Policy.js +++ b/src/libs/actions/Policy.js @@ -428,15 +428,14 @@ function setWorkspaceErrors(policyID, errors) { /** * @param {String} policyID - * @param {String} member * @param {Object} errors */ -function setWorkspaceMemberErrors(policyID, member, errors) { - if (!allPolicies[policyID]) { +function setWorkspaceMemberErrors(policyID, errors) { + if (!allPolicies[`${ONYXKEYS.COLLECTION.POLICY}${policyID}`]) { return; } - Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY_MEMBER_LIST}${policyID}`, {[member]: {errors}}); + Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY_MEMBER_LIST}${policyID}`, errors); } /** diff --git a/src/pages/workspace/WorkspaceMembersPage.js b/src/pages/workspace/WorkspaceMembersPage.js index 95f271da6fc1..fa42077e3875 100644 --- a/src/pages/workspace/WorkspaceMembersPage.js +++ b/src/pages/workspace/WorkspaceMembersPage.js @@ -30,6 +30,7 @@ import {withNetwork} from '../../components/OnyxProvider'; import FullPageNotFoundView from '../../components/BlockingViews/FullPageNotFoundView'; import networkPropTypes from '../../components/networkPropTypes'; import * as Expensicons from '../../components/Icon/Expensicons'; +import DateUtils from '../../libs/DateUtils'; const propTypes = { /** The personal details of the person who is logged in */ @@ -108,11 +109,11 @@ class WorkspaceMembersPage extends React.Component { */ removeUsers() { this.validate(); - Policy.removeMembers(this.state.selectedEmployees, this.props.route.params.policyID); - this.setState({ - selectedEmployees: [], - isRemoveMembersConfirmModalVisible: false, - }); + // Policy.removeMembers(this.state.selectedEmployees, this.props.route.params.policyID); + // this.setState({ + // selectedEmployees: [], + // isRemoveMembersConfirmModalVisible: false, + // }); } /** @@ -198,12 +199,20 @@ class WorkspaceMembersPage extends React.Component { } validate() { + const onyxUpdate = {}; _.each(this.state.selectedEmployees, (member) => { - if (member === this.props.policy.owner) { - const error = this.props.translate('workspace.people.error.cannotRemove'); - setWorkspaceMemberError(member, error); + if (member !== this.props.policy.owner && member !== this.props.session.email) { + return; } + + onyxUpdate[member] = { + errors: { + [DateUtils.getMicroseconds()]: this.props.translate('workspace.people.error.cannotRemove') + }, + }; }); + + Policy.setWorkspaceMemberErrors(this.props.route.params.policyID, onyxUpdate); } /**