From b3f7a88fd186606644d7bbe084741baae3adb50f Mon Sep 17 00:00:00 2001 From: Fedi Rajhi Date: Mon, 19 Jun 2023 19:02:34 +0100 Subject: [PATCH 1/5] [Fix] Add PolicyMembers --- src/pages/workspace/WorkspaceNewRoomPage.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/pages/workspace/WorkspaceNewRoomPage.js b/src/pages/workspace/WorkspaceNewRoomPage.js index fd91d1b43214..dafb958aafe0 100644 --- a/src/pages/workspace/WorkspaceNewRoomPage.js +++ b/src/pages/workspace/WorkspaceNewRoomPage.js @@ -21,6 +21,7 @@ import * as ErrorUtils from '../../libs/ErrorUtils'; import * as ValidationUtils from '../../libs/ValidationUtils'; import Form from '../../components/Form'; import shouldDelayFocus from '../../libs/shouldDelayFocus'; +import policyMemberPropType from "../policyMemberPropType"; const propTypes = { /** All reports shared with the user */ @@ -52,12 +53,17 @@ const propTypes = { }), ), + + /** A collection of objects for all policies which key policy member objects by accountIDs */ + allPolicyMembers: PropTypes.objectOf(PropTypes.objectOf(policyMemberPropType)), + ...withLocalizePropTypes, }; const defaultProps = { betas: [], reports: {}, policies: {}, + allPolicyMembers: {}, }; class WorkspaceNewRoomPage extends React.Component { @@ -202,6 +208,9 @@ export default compose( reports: { key: ONYXKEYS.COLLECTION.REPORT, }, + allPolicyMembers: { + key: ONYXKEYS.COLLECTION.POLICY_MEMBERS, + } }), withLocalize, )(WorkspaceNewRoomPage); From 8266c1b506536e9ddb165df4b8baca92650e935f Mon Sep 17 00:00:00 2001 From: Fedi Rajhi Date: Mon, 19 Jun 2023 19:04:59 +0100 Subject: [PATCH 2/5] [Fix] Use PolicyMembers --- src/libs/actions/Report.js | 5 +++-- src/pages/workspace/WorkspaceNewRoomPage.js | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/libs/actions/Report.js b/src/libs/actions/Report.js index 8c62046dea5a..fd13c5b6d473 100644 --- a/src/libs/actions/Report.js +++ b/src/libs/actions/Report.js @@ -1152,10 +1152,11 @@ function navigateToConciergeChat() { * @param {Object} policy * @param {String} reportName * @param {String} visibility + * @param {Array} policyMembers */ -function addPolicyReport(policy, reportName, visibility) { +function addPolicyReport(policy, reportName, visibility, policyMembers) { // The participants include the current user (admin) and the employees. Participants must not be empty. - const participants = _.unique([currentUserAccountID, ..._.pluck(policy.employeeList, 'accountID')]); + const participants = _.unique([currentUserAccountID, ...policyMembers]); const policyReport = ReportUtils.buildOptimisticChatReport( participants, reportName, diff --git a/src/pages/workspace/WorkspaceNewRoomPage.js b/src/pages/workspace/WorkspaceNewRoomPage.js index dafb958aafe0..7c256ae51d44 100644 --- a/src/pages/workspace/WorkspaceNewRoomPage.js +++ b/src/pages/workspace/WorkspaceNewRoomPage.js @@ -21,7 +21,7 @@ import * as ErrorUtils from '../../libs/ErrorUtils'; import * as ValidationUtils from '../../libs/ValidationUtils'; import Form from '../../components/Form'; import shouldDelayFocus from '../../libs/shouldDelayFocus'; -import policyMemberPropType from "../policyMemberPropType"; +import policyMemberPropType from '../policyMemberPropType'; const propTypes = { /** All reports shared with the user */ @@ -53,7 +53,6 @@ const propTypes = { }), ), - /** A collection of objects for all policies which key policy member objects by accountIDs */ allPolicyMembers: PropTypes.objectOf(PropTypes.objectOf(policyMemberPropType)), @@ -84,7 +83,8 @@ class WorkspaceNewRoomPage extends React.Component { */ submit(values) { const policyID = this.props.policies[`${ONYXKEYS.COLLECTION.POLICY}${values.policyID}`]; - Report.addPolicyReport(policyID, values.roomName, values.visibility); + const policyMembers = _.map(_.keys(this.props.allPolicyMembers[`${ONYXKEYS.COLLECTION.POLICY_MEMBERS}${values.policyID}`]), Number); + Report.addPolicyReport(policyID, values.roomName, values.visibility, policyMembers); } /** @@ -210,7 +210,7 @@ export default compose( }, allPolicyMembers: { key: ONYXKEYS.COLLECTION.POLICY_MEMBERS, - } + }, }), withLocalize, )(WorkspaceNewRoomPage); From d9579eee255c26e01604ab9a6987dc77049b7c1a Mon Sep 17 00:00:00 2001 From: Fedi Rajhi Date: Mon, 19 Jun 2023 20:02:24 +0100 Subject: [PATCH 3/5] Improve readability --- src/pages/workspace/WorkspaceNewRoomPage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/WorkspaceNewRoomPage.js b/src/pages/workspace/WorkspaceNewRoomPage.js index 7c256ae51d44..623a504ab987 100644 --- a/src/pages/workspace/WorkspaceNewRoomPage.js +++ b/src/pages/workspace/WorkspaceNewRoomPage.js @@ -83,7 +83,7 @@ class WorkspaceNewRoomPage extends React.Component { */ submit(values) { const policyID = this.props.policies[`${ONYXKEYS.COLLECTION.POLICY}${values.policyID}`]; - const policyMembers = _.map(_.keys(this.props.allPolicyMembers[`${ONYXKEYS.COLLECTION.POLICY_MEMBERS}${values.policyID}`]), Number); + const policyMembers = _.map(_.keys(this.props.allPolicyMembers[`${ONYXKEYS.COLLECTION.POLICY_MEMBERS}${values.policyID}`]), accountID => Number(accountID)); Report.addPolicyReport(policyID, values.roomName, values.visibility, policyMembers); } From d16fe7e52492fe1bd0d848886a2069fa861550ea Mon Sep 17 00:00:00 2001 From: Fedi Rajhi Date: Mon, 19 Jun 2023 20:07:48 +0100 Subject: [PATCH 4/5] run prettier --- src/pages/workspace/WorkspaceNewRoomPage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/WorkspaceNewRoomPage.js b/src/pages/workspace/WorkspaceNewRoomPage.js index 623a504ab987..b329c2755abc 100644 --- a/src/pages/workspace/WorkspaceNewRoomPage.js +++ b/src/pages/workspace/WorkspaceNewRoomPage.js @@ -83,7 +83,7 @@ class WorkspaceNewRoomPage extends React.Component { */ submit(values) { const policyID = this.props.policies[`${ONYXKEYS.COLLECTION.POLICY}${values.policyID}`]; - const policyMembers = _.map(_.keys(this.props.allPolicyMembers[`${ONYXKEYS.COLLECTION.POLICY_MEMBERS}${values.policyID}`]), accountID => Number(accountID)); + const policyMembers = _.map(_.keys(this.props.allPolicyMembers[`${ONYXKEYS.COLLECTION.POLICY_MEMBERS}${values.policyID}`]), (accountID) => Number(accountID)); Report.addPolicyReport(policyID, values.roomName, values.visibility, policyMembers); } From 302df0c3d4d696d54e974438ad44dd08c00fef01 Mon Sep 17 00:00:00 2001 From: Fedi Rajhi Date: Mon, 19 Jun 2023 20:28:03 +0100 Subject: [PATCH 5/5] Simplify , update jsdoc --- src/libs/actions/Report.js | 6 +++--- src/pages/workspace/WorkspaceNewRoomPage.js | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/libs/actions/Report.js b/src/libs/actions/Report.js index fd13c5b6d473..d67abf4b3c16 100644 --- a/src/libs/actions/Report.js +++ b/src/libs/actions/Report.js @@ -1149,19 +1149,19 @@ function navigateToConciergeChat() { /** * Add a policy report (workspace room) optimistically and navigate to it. * - * @param {Object} policy + * @param {String} policyID * @param {String} reportName * @param {String} visibility * @param {Array} policyMembers */ -function addPolicyReport(policy, reportName, visibility, policyMembers) { +function addPolicyReport(policyID, reportName, visibility, policyMembers) { // The participants include the current user (admin) and the employees. Participants must not be empty. const participants = _.unique([currentUserAccountID, ...policyMembers]); const policyReport = ReportUtils.buildOptimisticChatReport( participants, reportName, CONST.REPORT.CHAT_TYPE.POLICY_ROOM, - policy.id, + policyID, CONST.REPORT.OWNER_EMAIL_FAKE, CONST.REPORT.OWNER_ACCOUNT_ID_FAKE, false, diff --git a/src/pages/workspace/WorkspaceNewRoomPage.js b/src/pages/workspace/WorkspaceNewRoomPage.js index b329c2755abc..361610266b42 100644 --- a/src/pages/workspace/WorkspaceNewRoomPage.js +++ b/src/pages/workspace/WorkspaceNewRoomPage.js @@ -82,9 +82,8 @@ class WorkspaceNewRoomPage extends React.Component { * @param {Object} values - form input values passed by the Form component */ submit(values) { - const policyID = this.props.policies[`${ONYXKEYS.COLLECTION.POLICY}${values.policyID}`]; const policyMembers = _.map(_.keys(this.props.allPolicyMembers[`${ONYXKEYS.COLLECTION.POLICY_MEMBERS}${values.policyID}`]), (accountID) => Number(accountID)); - Report.addPolicyReport(policyID, values.roomName, values.visibility, policyMembers); + Report.addPolicyReport(values.policyID, values.roomName, values.visibility, policyMembers); } /**