diff --git a/package-lock.json b/package-lock.json index 23af1f436de..129a36a36d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "babel-polyfill": "^6.26.0", "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", - "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#50aacd53fe54ef7131e5cb9c74ee4526b3bcfe16", + "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#a1e97c5e236ae7bc10623da6db9847bbd91863ab", "fbjs": "^3.0.2", "html-entities": "^1.3.1", "htmlparser2": "^7.2.0", @@ -24054,8 +24054,8 @@ }, "node_modules/expensify-common": { "version": "1.0.0", - "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#50aacd53fe54ef7131e5cb9c74ee4526b3bcfe16", - "integrity": "sha512-wnx6WiG2NVqIs2m3M0VjL/kw2I1rgWOD06mNp6FwRGeOVC+QIL6hsdJgqf9z9NjBSuhc6THfzbcrAOSGs3kTkw==", + "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#a1e97c5e236ae7bc10623da6db9847bbd91863ab", + "integrity": "sha512-24qOK8Sjsu0RgC0WGxPGzp/MFgHZubojgOJZqPJLa2PDDkpoli3BSFaUrtWsEOKOmP+HUYPdB7SYwjSew/0tmQ==", "license": "MIT", "dependencies": { "classnames": "2.3.1", @@ -59286,9 +59286,9 @@ } }, "expensify-common": { - "version": "git+ssh://git@github.com/Expensify/expensify-common.git#50aacd53fe54ef7131e5cb9c74ee4526b3bcfe16", - "integrity": "sha512-wnx6WiG2NVqIs2m3M0VjL/kw2I1rgWOD06mNp6FwRGeOVC+QIL6hsdJgqf9z9NjBSuhc6THfzbcrAOSGs3kTkw==", - "from": "expensify-common@git+ssh://git@github.com/Expensify/expensify-common.git#50aacd53fe54ef7131e5cb9c74ee4526b3bcfe16", + "version": "git+ssh://git@github.com/Expensify/expensify-common.git#a1e97c5e236ae7bc10623da6db9847bbd91863ab", + "integrity": "sha512-24qOK8Sjsu0RgC0WGxPGzp/MFgHZubojgOJZqPJLa2PDDkpoli3BSFaUrtWsEOKOmP+HUYPdB7SYwjSew/0tmQ==", + "from": "expensify-common@git+ssh://git@github.com/Expensify/expensify-common.git#a1e97c5e236ae7bc10623da6db9847bbd91863ab", "requires": { "classnames": "2.3.1", "clipboard": "2.0.4", diff --git a/package.json b/package.json index 0d9bd76e83a..5501a2f6a90 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "babel-polyfill": "^6.26.0", "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", - "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#50aacd53fe54ef7131e5cb9c74ee4526b3bcfe16", + "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#a1e97c5e236ae7bc10623da6db9847bbd91863ab", "fbjs": "^3.0.2", "html-entities": "^1.3.1", "htmlparser2": "^7.2.0", diff --git a/src/components/CopySelectionHelper.js b/src/components/CopySelectionHelper.js index 30edaa3cf03..119910bb4c7 100644 --- a/src/components/CopySelectionHelper.js +++ b/src/components/CopySelectionHelper.js @@ -1,6 +1,5 @@ import React from 'react'; import ExpensiMark from 'expensify-common/lib/ExpensiMark'; -import Str from 'expensify-common/lib/str'; import CONST from '../CONST'; import KeyboardShortcut from '../libs/KeyboardShortcut'; import Clipboard from '../libs/Clipboard'; @@ -36,8 +35,7 @@ class CopySelectionHelper extends React.Component { Clipboard.setString(parser.htmlToMarkdown(selection)); return; } - - Clipboard.setHtml(selection, Str.htmlDecode(parser.htmlToText(selection))); + Clipboard.setHtml(selection, parser.htmlToText(selection)); } render() { diff --git a/src/libs/ReportUtils.js b/src/libs/ReportUtils.js index fa8b93741aa..ef2fdd1f012 100644 --- a/src/libs/ReportUtils.js +++ b/src/libs/ReportUtils.js @@ -659,12 +659,12 @@ function canShowReportRecipientLocalTime(personalDetails, report, login) { } /** - * Html decode, shorten last message text to fixed length and trim spaces. + * Shorten last message text to fixed length and trim spaces. * @param {String} lastMessageText * @returns {String} */ function formatReportLastMessageText(lastMessageText) { - return Str.htmlDecode(String(lastMessageText)).trim().replace(CONST.REGEX.AFTER_FIRST_LINE_BREAK, '').substring(0, CONST.REPORT.LAST_MESSAGE_TEXT_MAX_LENGTH).trim(); + return String(lastMessageText).trim().replace(CONST.REGEX.AFTER_FIRST_LINE_BREAK, '').substring(0, CONST.REPORT.LAST_MESSAGE_TEXT_MAX_LENGTH).trim(); } /** @@ -1295,7 +1295,7 @@ function getIOUReportActionMessage(type, total, comment, currency, paymentType = return [ { - html: iouMessage, + html: _.escape(iouMessage), text: iouMessage, isEdited: false, type: CONST.REPORT.MESSAGE.TYPE.COMMENT, diff --git a/src/libs/actions/IOU.js b/src/libs/actions/IOU.js index 936e3edaf17..4a5d77dfba7 100644 --- a/src/libs/actions/IOU.js +++ b/src/libs/actions/IOU.js @@ -689,7 +689,7 @@ function deleteMoneyRequest(chatReportID, iouReportID, moneyRequestAction, shoul CONST.IOU.REPORT_ACTION_TYPE.DELETE, amount, moneyRequestAction.originalMessage.currency, - Str.htmlDecode(moneyRequestAction.originalMessage.comment), + moneyRequestAction.originalMessage.comment, [], transactionID, '', diff --git a/src/libs/actions/Task.js b/src/libs/actions/Task.js index bda8bec4f66..fdd66b278aa 100644 --- a/src/libs/actions/Task.js +++ b/src/libs/actions/Task.js @@ -1,6 +1,5 @@ import Onyx from 'react-native-onyx'; import lodashGet from 'lodash/get'; -import Str from 'expensify-common/lib/str'; import _ from 'underscore'; import ONYXKEYS from '../../ONYXKEYS'; import * as API from '../API'; @@ -54,7 +53,7 @@ function createTaskAndNavigate(currentUserEmail, parentReportID, title, descript const optimisticReport = { lastVisibleActionCreated: currentTime, - lastMessageText: Str.htmlDecode(lastCommentText), + lastMessageText: lastCommentText, lastActorEmail: currentUserEmail, lastReadTime: currentTime, }; @@ -124,7 +123,7 @@ function createTaskAndNavigate(currentUserEmail, parentReportID, title, descript const optimisticAssigneeReport = { lastVisibleActionCreated: currentTime, - lastMessageText: Str.htmlDecode(lastAssigneeCommentText), + lastMessageText: lastAssigneeCommentText, lastActorEmail: currentUserEmail, lastReadTime: currentTime, }; @@ -338,7 +337,7 @@ function editTaskAndNavigate(report, ownerEmail, {title, description, assignee}) const optimisticAssigneeReport = { lastVisibleActionCreated: currentTime, - lastMessageText: Str.htmlDecode(lastAssigneeCommentText), + lastMessageText: lastAssigneeCommentText, lastActorEmail: ownerEmail, lastReadTime: currentTime, }; diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.js b/src/pages/home/report/ContextMenu/ContextMenuActions.js index b5c9d6412a0..0edcc509d04 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.js +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.js @@ -1,7 +1,6 @@ import React from 'react'; import _ from 'underscore'; import ExpensiMark from 'expensify-common/lib/ExpensiMark'; -import Str from 'expensify-common/lib/str'; import lodashGet from 'lodash/get'; import * as Expensicons from '../../../../components/Icon/Expensicons'; import * as Report from '../../../../libs/actions/Report'; @@ -181,7 +180,7 @@ export default [ if (!Clipboard.canSetHtml()) { Clipboard.setString(parser.htmlToMarkdown(content)); } else { - const plainText = Str.htmlDecode(parser.htmlToText(content)); + const plainText = parser.htmlToText(content); Clipboard.setHtml(content, plainText); } } diff --git a/src/pages/home/report/ReportActionItemFragment.js b/src/pages/home/report/ReportActionItemFragment.js index e606b0c65f6..170984cdd96 100644 --- a/src/pages/home/report/ReportActionItemFragment.js +++ b/src/pages/home/report/ReportActionItemFragment.js @@ -125,7 +125,7 @@ const ReportActionItemFragment = (props) => { selectable={!DeviceCapabilities.canUseTouchScreen() || !props.isSmallScreenWidth} style={[containsOnlyEmojis ? styles.onlyEmojisText : undefined, styles.ltr, ...props.style]} > - {convertToLTR(Str.htmlDecode(text))} + {convertToLTR(text)} {Boolean(props.fragment.isEdited) && (