diff --git a/src/pages/home/report/EmojiPickerMenu/index.js b/src/pages/home/report/EmojiPickerMenu/index.js index e934517717f36..eda603466dd23 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])); @@ -343,9 +343,12 @@ class EmojiPickerMenu extends Component { return; } - const newFilteredEmojiList = _.filter(this.emojis, emoji => ( + // 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 - && 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; }