From 4047c4b6079aff5f3a1c669b34a122aa296c8acd Mon Sep 17 00:00:00 2001 From: jeet-dhandha Date: Fri, 30 Jun 2023 05:30:39 +0530 Subject: [PATCH 1/7] fix: emoji showing original message for few moments --- src/libs/ReportActionsUtils.js | 15 +++++++++++++++ src/libs/actions/Report.js | 7 ++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/libs/ReportActionsUtils.js b/src/libs/ReportActionsUtils.js index eb871bcf62c1..f79b6b53fc37 100644 --- a/src/libs/ReportActionsUtils.js +++ b/src/libs/ReportActionsUtils.js @@ -425,6 +425,20 @@ function getLinkedTransactionID(reportID, reportActionID) { return reportAction.originalMessage.IOUTransactionID; } +/** + * Returns the parentReportAction if the given report is a thread/task. + * + * @param {String} reportID + * @param {String} reportActionID + * @returns {Object} + */ +function getReportAction(reportID, reportActionID) { + if (!reportID || !reportActionID) { + return {}; + } + return lodashGet(allReportActions, [reportID, reportActionID], {}); +} + /** * @param {*} chatReportID * @param {*} iouReportID @@ -492,4 +506,5 @@ export { isMessageDeleted, isWhisperAction, isPendingRemove, + getReportAction, }; diff --git a/src/libs/actions/Report.js b/src/libs/actions/Report.js index 2f6f812bdbe3..a05ca26ef0df 100644 --- a/src/libs/actions/Report.js +++ b/src/libs/actions/Report.js @@ -1639,15 +1639,16 @@ function removeEmojiReaction(reportID, originalReportAction, emoji) { * @returns {Promise} */ function toggleEmojiReaction(reportID, reportAction, emoji, paramSkinTone = preferredSkinTone) { - const message = reportAction.message[0]; + const latestReportAction = ReportActionsUtils.getReportAction(reportID, reportAction.reportActionID); + const message = latestReportAction.message[0]; const reactionObject = message.reactions && _.find(message.reactions, (reaction) => reaction.emoji === emoji.name); const skinTone = emoji.types === undefined ? null : paramSkinTone; // only use skin tone if emoji supports it if (reactionObject) { if (hasAccountIDReacted(currentUserAccountID, reactionObject.users, skinTone)) { - return removeEmojiReaction(reportID, reportAction, emoji, skinTone); + return removeEmojiReaction(reportID, latestReportAction, emoji, skinTone); } } - return addEmojiReaction(reportID, reportAction, emoji, skinTone); + return addEmojiReaction(reportID, latestReportAction, emoji, skinTone); } /** From 0142e73e0110e102036095cf14651462c1159fda Mon Sep 17 00:00:00 2001 From: jeet-dhandha Date: Fri, 30 Jun 2023 15:25:19 +0530 Subject: [PATCH 2/7] fix: remove extra check from getReportAction --- src/libs/ReportActionsUtils.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/libs/ReportActionsUtils.js b/src/libs/ReportActionsUtils.js index f79b6b53fc37..7e2a9164746b 100644 --- a/src/libs/ReportActionsUtils.js +++ b/src/libs/ReportActionsUtils.js @@ -433,9 +433,6 @@ function getLinkedTransactionID(reportID, reportActionID) { * @returns {Object} */ function getReportAction(reportID, reportActionID) { - if (!reportID || !reportActionID) { - return {}; - } return lodashGet(allReportActions, [reportID, reportActionID], {}); } From 5b030d23c16e2c4ad96cfb6c8b09292314ce6abc Mon Sep 17 00:00:00 2001 From: jeet-dhandha Date: Fri, 30 Jun 2023 15:26:10 +0530 Subject: [PATCH 3/7] fix: add empty check for report --- src/libs/actions/Report.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libs/actions/Report.js b/src/libs/actions/Report.js index a05ca26ef0df..f7f020c960d6 100644 --- a/src/libs/actions/Report.js +++ b/src/libs/actions/Report.js @@ -1640,6 +1640,11 @@ function removeEmojiReaction(reportID, originalReportAction, emoji) { */ function toggleEmojiReaction(reportID, reportAction, emoji, paramSkinTone = preferredSkinTone) { const latestReportAction = ReportActionsUtils.getReportAction(reportID, reportAction.reportActionID); + + if(_.isEmpty(latestReportAction)) { + return; + } + const message = latestReportAction.message[0]; const reactionObject = message.reactions && _.find(message.reactions, (reaction) => reaction.emoji === emoji.name); const skinTone = emoji.types === undefined ? null : paramSkinTone; // only use skin tone if emoji supports it From df7b16745971d06c188e841034c0a1c9c23780a1 Mon Sep 17 00:00:00 2001 From: jeet-dhandha Date: Mon, 3 Jul 2023 23:00:19 +0530 Subject: [PATCH 4/7] fix: requested changes --- src/libs/ReportActionsUtils.js | 7 ------- src/libs/actions/Report.js | 14 +++++++------- .../home/report/ContextMenu/ContextMenuActions.js | 2 +- src/pages/home/report/ReportActionItem.js | 2 +- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/libs/ReportActionsUtils.js b/src/libs/ReportActionsUtils.js index 7e2a9164746b..fc6ac92dadb5 100644 --- a/src/libs/ReportActionsUtils.js +++ b/src/libs/ReportActionsUtils.js @@ -425,13 +425,6 @@ function getLinkedTransactionID(reportID, reportActionID) { return reportAction.originalMessage.IOUTransactionID; } -/** - * Returns the parentReportAction if the given report is a thread/task. - * - * @param {String} reportID - * @param {String} reportActionID - * @returns {Object} - */ function getReportAction(reportID, reportActionID) { return lodashGet(allReportActions, [reportID, reportActionID], {}); } diff --git a/src/libs/actions/Report.js b/src/libs/actions/Report.js index f7f020c960d6..aabec697e1aa 100644 --- a/src/libs/actions/Report.js +++ b/src/libs/actions/Report.js @@ -1633,27 +1633,27 @@ function removeEmojiReaction(reportID, originalReportAction, emoji) { /** * Calls either addEmojiReaction or removeEmojiReaction depending on if the current user has reacted to the report action. * @param {String} reportID - * @param {Object} reportAction + * @param {String} reportActionID * @param {Object} emoji * @param {number} paramSkinTone * @returns {Promise} */ -function toggleEmojiReaction(reportID, reportAction, emoji, paramSkinTone = preferredSkinTone) { - const latestReportAction = ReportActionsUtils.getReportAction(reportID, reportAction.reportActionID); +function toggleEmojiReaction(reportID, reportActionID, emoji, paramSkinTone = preferredSkinTone) { + const reportAction = ReportActionsUtils.getReportAction(reportID, reportActionID); - if(_.isEmpty(latestReportAction)) { + if(_.isEmpty(reportAction)) { return; } - const message = latestReportAction.message[0]; + const message = reportAction.message[0]; const reactionObject = message.reactions && _.find(message.reactions, (reaction) => reaction.emoji === emoji.name); const skinTone = emoji.types === undefined ? null : paramSkinTone; // only use skin tone if emoji supports it if (reactionObject) { if (hasAccountIDReacted(currentUserAccountID, reactionObject.users, skinTone)) { - return removeEmojiReaction(reportID, latestReportAction, emoji, skinTone); + return removeEmojiReaction(reportID, reportAction, emoji, skinTone); } } - return addEmojiReaction(reportID, latestReportAction, emoji, skinTone); + return addEmojiReaction(reportID, reportAction, emoji, skinTone); } /** diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.js b/src/pages/home/report/ContextMenu/ContextMenuActions.js index 0a0388e414c7..b05c29804d19 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.js +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.js @@ -58,7 +58,7 @@ export default [ }; const onEmojiSelected = (emoji) => { - Report.toggleEmojiReaction(reportID, reportAction, emoji); + Report.toggleEmojiReaction(reportID, reportAction.reportActionID, emoji); closeContextMenu(); }; diff --git a/src/pages/home/report/ReportActionItem.js b/src/pages/home/report/ReportActionItem.js index 926774dfc755..c8cf023a6138 100644 --- a/src/pages/home/report/ReportActionItem.js +++ b/src/pages/home/report/ReportActionItem.js @@ -207,7 +207,7 @@ function ReportActionItem(props) { const toggleReaction = useCallback( (emoji) => { - Report.toggleEmojiReaction(props.report.reportID, props.action, emoji); + Report.toggleEmojiReaction(props.report.reportID, props.action.reportActionID, emoji); }, [props.report, props.action], ); From 035d7f3ed90d86d1be69574a1d9ba7ba7f36b26a Mon Sep 17 00:00:00 2001 From: jeet-dhandha Date: Mon, 3 Jul 2023 23:12:47 +0530 Subject: [PATCH 5/7] fix: requested changes in tests --- tests/actions/ReportTest.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/actions/ReportTest.js b/tests/actions/ReportTest.js index e98a5249187f..5ebffff507b8 100644 --- a/tests/actions/ReportTest.js +++ b/tests/actions/ReportTest.js @@ -659,7 +659,7 @@ describe('actions/Report', () => { const resultAction = _.first(_.values(reportActions)); // Add a reaction to the comment - Report.toggleEmojiReaction(REPORT_ID, resultAction, EMOJI); + Report.toggleEmojiReaction(REPORT_ID, resultAction.reportActionID, EMOJI); return waitForPromisesToResolve(); }) .then(() => { @@ -668,7 +668,7 @@ describe('actions/Report', () => { // Now we toggle the reaction while the skin tone has changed. // As the emoji doesn't support skin tones, the emoji // should get removed instead of added again. - Report.toggleEmojiReaction(REPORT_ID, resultAction, EMOJI, 2); + Report.toggleEmojiReaction(REPORT_ID, resultAction.reportActionID, EMOJI, 2); return waitForPromisesToResolve(); }) .then(() => { From 3449e3400d01ec32211f758ee126594a7daf9057 Mon Sep 17 00:00:00 2001 From: jeet-dhandha Date: Mon, 3 Jul 2023 23:14:38 +0530 Subject: [PATCH 6/7] fix: added description --- src/libs/ReportActionsUtils.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libs/ReportActionsUtils.js b/src/libs/ReportActionsUtils.js index fc6ac92dadb5..78dea645e18e 100644 --- a/src/libs/ReportActionsUtils.js +++ b/src/libs/ReportActionsUtils.js @@ -425,6 +425,12 @@ function getLinkedTransactionID(reportID, reportActionID) { return reportAction.originalMessage.IOUTransactionID; } +/** + * + * @param {String} reportID + * @param {String} reportActionID + * @returns {Object} + */ function getReportAction(reportID, reportActionID) { return lodashGet(allReportActions, [reportID, reportActionID], {}); } From 035c101836d0203117682199c02a162b752304cd Mon Sep 17 00:00:00 2001 From: jeet-dhandha Date: Mon, 3 Jul 2023 23:18:59 +0530 Subject: [PATCH 7/7] fix: lint issues fixed --- src/libs/ReportActionsUtils.js | 2 +- src/libs/actions/Report.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libs/ReportActionsUtils.js b/src/libs/ReportActionsUtils.js index 78dea645e18e..8ce7240f7bfb 100644 --- a/src/libs/ReportActionsUtils.js +++ b/src/libs/ReportActionsUtils.js @@ -426,7 +426,7 @@ function getLinkedTransactionID(reportID, reportActionID) { } /** - * + * * @param {String} reportID * @param {String} reportActionID * @returns {Object} diff --git a/src/libs/actions/Report.js b/src/libs/actions/Report.js index aabec697e1aa..55eaee691ad9 100644 --- a/src/libs/actions/Report.js +++ b/src/libs/actions/Report.js @@ -1640,11 +1640,11 @@ function removeEmojiReaction(reportID, originalReportAction, emoji) { */ function toggleEmojiReaction(reportID, reportActionID, emoji, paramSkinTone = preferredSkinTone) { const reportAction = ReportActionsUtils.getReportAction(reportID, reportActionID); - - if(_.isEmpty(reportAction)) { + + if (_.isEmpty(reportAction)) { return; } - + const message = reportAction.message[0]; const reactionObject = message.reactions && _.find(message.reactions, (reaction) => reaction.emoji === emoji.name); const skinTone = emoji.types === undefined ? null : paramSkinTone; // only use skin tone if emoji supports it