From 7240aea5ea3e27e1bc7230df3451873988a4fa8a Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Wed, 19 Jan 2022 05:09:54 +0530 Subject: [PATCH 1/6] fix: filter frequently emojis out from the search list --- src/pages/home/report/EmojiPickerMenu/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pages/home/report/EmojiPickerMenu/index.js b/src/pages/home/report/EmojiPickerMenu/index.js index e934517717f36..1b58afca70d56 100755 --- a/src/pages/home/report/EmojiPickerMenu/index.js +++ b/src/pages/home/report/EmojiPickerMenu/index.js @@ -343,7 +343,9 @@ class EmojiPickerMenu extends Component { return; } - const newFilteredEmojiList = _.filter(this.emojis, emoji => ( + // We're skipping "Frequently Used" emojis to avoid duplicate results. Frequently Usd Emoji is the 0th index category,. + // Hence, we slice the array from the 1st index category onwards + const newFilteredEmojiList = _.filter(this.emojis.slice(this.unfilteredHeaderIndices[1] * this.numColumns), emoji => ( !emoji.header && emoji.code !== CONST.EMOJI_SPACER && _.find(emoji.keywords, keyword => keyword.includes(normalizedSearchTerm)) From aa6168b11829e537ae845f4c94a83d5907a20984 Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Wed, 19 Jan 2022 05:12:06 +0530 Subject: [PATCH 2/6] fix: Changed EMOJI_SPACER references in the app --- src/pages/home/report/EmojiPickerMenu/index.js | 4 ++-- tests/unit/EmojiRegexTest.js | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/pages/home/report/EmojiPickerMenu/index.js b/src/pages/home/report/EmojiPickerMenu/index.js index 1b58afca70d56..554f5dae19ac1 100755 --- a/src/pages/home/report/EmojiPickerMenu/index.js +++ b/src/pages/home/report/EmojiPickerMenu/index.js @@ -242,7 +242,7 @@ class EmojiPickerMenu extends Component { } // Move in the prescribed direction until we reach an element that isn't a header - const isHeader = e => e.header || e.code === CONST.EMOJI_SPACER; + const isHeader = e => e.header || e.spacer; do { newIndex += steps; } while (isHeader(this.state.filteredEmojis[newIndex])); @@ -347,7 +347,7 @@ class EmojiPickerMenu extends Component { // Hence, we slice the array from the 1st index category onwards const newFilteredEmojiList = _.filter(this.emojis.slice(this.unfilteredHeaderIndices[1] * this.numColumns), emoji => ( !emoji.header - && emoji.code !== CONST.EMOJI_SPACER + && !emoji.spacer && _.find(emoji.keywords, keyword => keyword.includes(normalizedSearchTerm)) )); diff --git a/tests/unit/EmojiRegexTest.js b/tests/unit/EmojiRegexTest.js index 895e6f1acedf5..1d84ed11dea7a 100644 --- a/tests/unit/EmojiRegexTest.js +++ b/tests/unit/EmojiRegexTest.js @@ -1,13 +1,12 @@ import _ from 'underscore'; import Emoji from '../../assets/emojis'; -import CONST from '../../src/CONST'; import * as EmojiUtils from '../../src/libs/EmojiUtils'; describe('EmojiRegexTest', () => { it('matches all the emojis in the list', () => { // Given the set of Emojis available in the application const emojiMatched = _.every(Emoji, (emoji) => { - if (emoji.header === true || emoji.code === CONST.EMOJI_SPACER) { + if (emoji.header === true || emoji.spacer) { return true; } From 9f8e74a840965d809711cc36444ece433b11a822 Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Wed, 19 Jan 2022 05:22:03 +0530 Subject: [PATCH 3/6] fix: Ignore slice when no frequent used emojis exist --- src/pages/home/report/EmojiPickerMenu/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/home/report/EmojiPickerMenu/index.js b/src/pages/home/report/EmojiPickerMenu/index.js index 554f5dae19ac1..5b3a224a53b00 100755 --- a/src/pages/home/report/EmojiPickerMenu/index.js +++ b/src/pages/home/report/EmojiPickerMenu/index.js @@ -345,7 +345,8 @@ class EmojiPickerMenu extends Component { // We're skipping "Frequently Used" emojis to avoid duplicate results. Frequently Usd Emoji is the 0th index category,. // Hence, we slice the array from the 1st index category onwards - const newFilteredEmojiList = _.filter(this.emojis.slice(this.unfilteredHeaderIndices[1] * this.numColumns), emoji => ( + const uniqueEmojis = _.isEmpty(this.props.frequentlyUsedEmojis) ? this.emojis : this.emojis.slice(this.unfilteredHeaderIndices[1] * this.numColumns); + const newFilteredEmojiList = _.filter(uniqueEmojis, emoji => ( !emoji.header && !emoji.spacer && _.find(emoji.keywords, keyword => keyword.includes(normalizedSearchTerm)) From e82c417a70e5bfa07241bff139888ddd2d379225 Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Wed, 19 Jan 2022 21:48:12 +0530 Subject: [PATCH 4/6] fix: corrected typo --- src/pages/home/report/EmojiPickerMenu/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/home/report/EmojiPickerMenu/index.js b/src/pages/home/report/EmojiPickerMenu/index.js index 5b3a224a53b00..26407cc70186d 100755 --- a/src/pages/home/report/EmojiPickerMenu/index.js +++ b/src/pages/home/report/EmojiPickerMenu/index.js @@ -343,7 +343,7 @@ class EmojiPickerMenu extends Component { return; } - // We're skipping "Frequently Used" emojis to avoid duplicate results. Frequently Usd Emoji is the 0th index category,. + // We're skipping "Frequently Used" emojis to avoid duplicate results. Frequently Usd Emoji is the 0th index category. // Hence, we slice the array from the 1st index category onwards const uniqueEmojis = _.isEmpty(this.props.frequentlyUsedEmojis) ? this.emojis : this.emojis.slice(this.unfilteredHeaderIndices[1] * this.numColumns); const newFilteredEmojiList = _.filter(uniqueEmojis, emoji => ( From bf00fb3bcaf8156f15f98d1c8b8f5df9e6c0ad6f Mon Sep 17 00:00:00 2001 From: Manan Date: Thu, 20 Jan 2022 11:16:05 +0530 Subject: [PATCH 5/6] fix: Changed comment Co-authored-by: Rajat Parashar --- src/pages/home/report/EmojiPickerMenu/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/home/report/EmojiPickerMenu/index.js b/src/pages/home/report/EmojiPickerMenu/index.js index 26407cc70186d..416d4b9a4a4ed 100755 --- a/src/pages/home/report/EmojiPickerMenu/index.js +++ b/src/pages/home/report/EmojiPickerMenu/index.js @@ -343,8 +343,8 @@ class EmojiPickerMenu extends Component { return; } - // We're skipping "Frequently Used" emojis to avoid duplicate results. Frequently Usd Emoji is the 0th index category. - // Hence, we slice the array from the 1st index category onwards + // Skip "Frequently Used" emojis to avoid duplicate results. + // Frequently used emojis are on the 0th index category. Hence, slice the array from the 1st index category onwards. const uniqueEmojis = _.isEmpty(this.props.frequentlyUsedEmojis) ? this.emojis : this.emojis.slice(this.unfilteredHeaderIndices[1] * this.numColumns); const newFilteredEmojiList = _.filter(uniqueEmojis, emoji => ( !emoji.header From dc965fbf6346b260ccc338fa7a60caa64e3a92e3 Mon Sep 17 00:00:00 2001 From: Manan Jadhav Date: Thu, 20 Jan 2022 11:39:16 +0530 Subject: [PATCH 6/6] fix: lint fixes --- src/pages/home/report/EmojiPickerMenu/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/home/report/EmojiPickerMenu/index.js b/src/pages/home/report/EmojiPickerMenu/index.js index 416d4b9a4a4ed..eda603466dd23 100755 --- a/src/pages/home/report/EmojiPickerMenu/index.js +++ b/src/pages/home/report/EmojiPickerMenu/index.js @@ -343,7 +343,7 @@ class EmojiPickerMenu extends Component { return; } - // Skip "Frequently Used" emojis to avoid duplicate results. + // Skip "Frequently Used" emojis to avoid duplicate results. // Frequently used emojis are on the 0th index category. Hence, slice the array from the 1st index category onwards. const uniqueEmojis = _.isEmpty(this.props.frequentlyUsedEmojis) ? this.emojis : this.emojis.slice(this.unfilteredHeaderIndices[1] * this.numColumns); const newFilteredEmojiList = _.filter(uniqueEmojis, emoji => (