diff --git a/src/libs/actions/Report.js b/src/libs/actions/Report.js index 75ffcad090cc..b9ce630f1c2b 100644 --- a/src/libs/actions/Report.js +++ b/src/libs/actions/Report.js @@ -538,7 +538,15 @@ function setNewMarkerPosition(reportID, sequenceNumber) { function updateReportActionMessage(reportID, sequenceNumber, message) { const actionToMerge = {}; actionToMerge[sequenceNumber] = {message: [message]}; - Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${reportID}`, actionToMerge); + Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${reportID}`, actionToMerge).then(() => { + // Don't do anything for messages that aren't deleted. + if (message.html) { + return; + } + + // If the message is deleted, update the last read in case the deleted message is being counted in the unreadActionCount + setLocalLastRead(reportID, lastReadSequenceNumbers[reportID]); + }); // If this is the most recent message, update the lastMessageText in the report object as well if (sequenceNumber === reportMaxSequenceNumbers[reportID]) { diff --git a/src/libs/actions/ReportActions.js b/src/libs/actions/ReportActions.js index e80bbad61c56..7b4810697d94 100644 --- a/src/libs/actions/ReportActions.js +++ b/src/libs/actions/ReportActions.js @@ -83,15 +83,15 @@ function getDeletedCommentsCount(reportID, sequenceNumber) { return 0; } - return _.reduce(reportActions[reportID], (deletedMessages, action) => { + return _.reduce(reportActions[reportID], (numDeletedMessages, action) => { if (action.actionName !== CONST.REPORT.ACTIONS.TYPE.ADDCOMMENT || action.sequenceNumber <= sequenceNumber) { - return deletedMessages; + return numDeletedMessages; } // Empty ADDCOMMENT actions typically mean they have been deleted const message = _.first(lodashGet(action, 'message', null)); const html = lodashGet(message, 'html', ''); - return _.isEmpty(html) ? deletedMessages + 1 : deletedMessages; + return _.isEmpty(html) ? numDeletedMessages + 1 : numDeletedMessages; }, 0); }