From 26dd0b259b647a3f639dac584b1f1552872840f1 Mon Sep 17 00:00:00 2001 From: Jasper Huang Date: Wed, 16 Aug 2023 11:39:32 -0700 Subject: [PATCH 1/5] call OpenDraftWorkspaceRequest when mounting the MoneyRequestConfirmPage for policyExpenseChats --- src/libs/actions/Policy.js | 8 ++++++++ src/pages/iou/steps/MoneyRequestConfirmPage.js | 12 +++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/libs/actions/Policy.js b/src/libs/actions/Policy.js index 809491c1495..ec6c796593c 100644 --- a/src/libs/actions/Policy.js +++ b/src/libs/actions/Policy.js @@ -1157,6 +1157,13 @@ function openWorkspaceInvitePage(policyID, clientMemberEmails) { }); } +/** + * @param {String} policyID + */ +function openDraftWorkspaceRequest(policyID) { + API.read('OpenDraftWorkspaceRequest', {policyID}); +} + /** * @param {String} policyID * @param {Object} invitedEmailsToAccountIDs @@ -1202,4 +1209,5 @@ export { setWorkspaceInviteMembersDraft, isPolicyOwner, clearErrors, + openDraftWorkspaceRequest, }; diff --git a/src/pages/iou/steps/MoneyRequestConfirmPage.js b/src/pages/iou/steps/MoneyRequestConfirmPage.js index 00b22352292..ffe7b1c6eec 100644 --- a/src/pages/iou/steps/MoneyRequestConfirmPage.js +++ b/src/pages/iou/steps/MoneyRequestConfirmPage.js @@ -21,6 +21,8 @@ import withCurrentUserPersonalDetails, {withCurrentUserPersonalDetailsDefaultPro import reportPropTypes from '../../reportPropTypes'; import personalDetailsPropType from '../../personalDetailsPropType'; import * as FileUtils from '../../../libs/fileDownload/FileUtils'; +import * as Policy from '../../../libs/actions/Policy'; +import * as PolicyUtils from '../../../libs/PolicyUtils'; const propTypes = { report: reportPropTypes, @@ -73,7 +75,15 @@ function MoneyRequestConfirmPage(props) { : OptionsListUtils.getParticipantsOptions(props.iou.participants, props.personalDetails), [props.iou.participants, props.personalDetails], ); - + + useEffect(() => { + const policyExpenseChat = _.find(participants, (participant) => participant.isPolicyExpenseChat); + const policyID = policyExpenseChat.policyID; + if (policyExpenseChat) { + Policy.openDraftWorkspaceRequest(policyID); + } + }, [props.report, participants]); + useEffect(() => { // ID in Onyx could change by initiating a new request in a separate browser tab or completing a request if (prevMoneyRequestId.current !== props.iou.id) { From 59ea5c391fc58bb2a525390b6ef34c301827995b Mon Sep 17 00:00:00 2001 From: Jasper Huang Date: Wed, 16 Aug 2023 11:50:06 -0700 Subject: [PATCH 2/5] style --- src/pages/iou/steps/MoneyRequestConfirmPage.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/iou/steps/MoneyRequestConfirmPage.js b/src/pages/iou/steps/MoneyRequestConfirmPage.js index ffe7b1c6eec..c49564814b9 100644 --- a/src/pages/iou/steps/MoneyRequestConfirmPage.js +++ b/src/pages/iou/steps/MoneyRequestConfirmPage.js @@ -75,7 +75,7 @@ function MoneyRequestConfirmPage(props) { : OptionsListUtils.getParticipantsOptions(props.iou.participants, props.personalDetails), [props.iou.participants, props.personalDetails], ); - + useEffect(() => { const policyExpenseChat = _.find(participants, (participant) => participant.isPolicyExpenseChat); const policyID = policyExpenseChat.policyID; @@ -83,7 +83,7 @@ function MoneyRequestConfirmPage(props) { Policy.openDraftWorkspaceRequest(policyID); } }, [props.report, participants]); - + useEffect(() => { // ID in Onyx could change by initiating a new request in a separate browser tab or completing a request if (prevMoneyRequestId.current !== props.iou.id) { From 1bd90c93672e41162c5bcf3f006f3c91692e8d7d Mon Sep 17 00:00:00 2001 From: Jasper Huang Date: Wed, 16 Aug 2023 13:06:32 -0700 Subject: [PATCH 3/5] remove unused --- src/pages/iou/steps/MoneyRequestConfirmPage.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/iou/steps/MoneyRequestConfirmPage.js b/src/pages/iou/steps/MoneyRequestConfirmPage.js index c49564814b9..89498357d68 100644 --- a/src/pages/iou/steps/MoneyRequestConfirmPage.js +++ b/src/pages/iou/steps/MoneyRequestConfirmPage.js @@ -22,7 +22,6 @@ import reportPropTypes from '../../reportPropTypes'; import personalDetailsPropType from '../../personalDetailsPropType'; import * as FileUtils from '../../../libs/fileDownload/FileUtils'; import * as Policy from '../../../libs/actions/Policy'; -import * as PolicyUtils from '../../../libs/PolicyUtils'; const propTypes = { report: reportPropTypes, From 43daa6df05533281ec9828b98383209df64045d1 Mon Sep 17 00:00:00 2001 From: Jasper Huang Date: Thu, 17 Aug 2023 13:05:31 -0700 Subject: [PATCH 4/5] fix crash --- src/pages/iou/steps/MoneyRequestConfirmPage.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/pages/iou/steps/MoneyRequestConfirmPage.js b/src/pages/iou/steps/MoneyRequestConfirmPage.js index 89498357d68..26ce11cd617 100644 --- a/src/pages/iou/steps/MoneyRequestConfirmPage.js +++ b/src/pages/iou/steps/MoneyRequestConfirmPage.js @@ -77,11 +77,10 @@ function MoneyRequestConfirmPage(props) { useEffect(() => { const policyExpenseChat = _.find(participants, (participant) => participant.isPolicyExpenseChat); - const policyID = policyExpenseChat.policyID; if (policyExpenseChat) { - Policy.openDraftWorkspaceRequest(policyID); + Policy.openDraftWorkspaceRequest(policyExpenseChat.policyID); } - }, [props.report, participants]); + }); useEffect(() => { // ID in Onyx could change by initiating a new request in a separate browser tab or completing a request From a2f6277a1811bf79839d84ff0a4e39503faee4df Mon Sep 17 00:00:00 2001 From: Jasper Huang Date: Thu, 17 Aug 2023 14:06:48 -0700 Subject: [PATCH 5/5] fix useEffect --- src/pages/iou/steps/MoneyRequestConfirmPage.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/iou/steps/MoneyRequestConfirmPage.js b/src/pages/iou/steps/MoneyRequestConfirmPage.js index 26ce11cd617..a81e3a8bf82 100644 --- a/src/pages/iou/steps/MoneyRequestConfirmPage.js +++ b/src/pages/iou/steps/MoneyRequestConfirmPage.js @@ -80,7 +80,8 @@ function MoneyRequestConfirmPage(props) { if (policyExpenseChat) { Policy.openDraftWorkspaceRequest(policyExpenseChat.policyID); } - }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); useEffect(() => { // ID in Onyx could change by initiating a new request in a separate browser tab or completing a request