From 72d939b69fca9443038d89815ca5356319f42c43 Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Fri, 6 Oct 2017 03:03:13 -0700 Subject: [PATCH] Fix thinking_face emoji autocomplete (#5238) --- .../mastodon/features/emoji/emoji_utils.js | 17 ++++++++++------- spec/javascript/components/emoji_index.test.js | 7 +++++++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/app/javascript/mastodon/features/emoji/emoji_utils.js b/app/javascript/mastodon/features/emoji/emoji_utils.js index 6ef2785d9a9..2742185d9c7 100644 --- a/app/javascript/mastodon/features/emoji/emoji_utils.js +++ b/app/javascript/mastodon/features/emoji/emoji_utils.js @@ -125,13 +125,16 @@ function getData(emoji) { } function intersect(a, b) { - let aSet = new Set(a); - let bSet = new Set(b); - let intersection = new Set( - [...aSet].filter(x => bSet.has(x)) - ); - - return Array.from(intersection); + let set; + let list; + if (a.length < b.length) { + set = new Set(a); + list = b; + } else { + set = new Set(b); + list = a; + } + return Array.from(new Set(list.filter(x => set.has(x)))); } export { getData, getSanitizedData, intersect }; diff --git a/spec/javascript/components/emoji_index.test.js b/spec/javascript/components/emoji_index.test.js index 4bff7926500..07d26a685fc 100644 --- a/spec/javascript/components/emoji_index.test.js +++ b/spec/javascript/components/emoji_index.test.js @@ -96,4 +96,11 @@ describe('emoji_index', () => { expect(search('polo').map(trimEmojis)).to.deep.equal(expected); expect(emojiIndex.search('polo').map(trimEmojis)).to.deep.equal(expected); }); + + it('can search for thinking_face', () => { + let expected = [ { id: 'thinking_face', unified: '1f914', native: '🤔' } ]; + expect(search('thinking_fac').map(trimEmojis)).to.deep.equal(expected); + // this is currently broken in emoji-mart + // expect(emojiIndex.search('thinking_fac').map(trimEmojis)).to.deep.equal(expected); + }); });