From b736773c0fdafcca04022c77d8c88ee090083e5c Mon Sep 17 00:00:00 2001 From: Jonas Meurer Date: Wed, 24 Nov 2021 13:13:02 +0100 Subject: [PATCH] Prevent duplicates in emoji suggestions Use `Set()` instead of `Array.concat()` to merge results. --- src/extensions/Emoji.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/extensions/Emoji.js b/src/extensions/Emoji.js index 83a0a47eced..5cee3c8ccfb 100644 --- a/src/extensions/Emoji.js +++ b/src/extensions/Emoji.js @@ -99,17 +99,19 @@ export default class Emoji extends Extension { // First search for exact matches let results = searchItems.filter(item => item.short_names .filter(name => name.toLowerCase() === query.toLowerCase()).length > 0) + console.debug('results', results) - // TODO: prevent duplicated results // Second search for matches that start with query string - results = results.concat(searchItems.filter(item => item.short_names - .filter(name => name.toLowerCase().startsWith(query.toLowerCase())).length > 0)) + results = [...new Set([...results, ...searchItems.filter(item => item.short_names + .filter(name => name.toLowerCase().startsWith(query.toLowerCase())).length > 0)])] + console.debug('results', results) // If we still don't have enough, search for general matches if (results.length < 5) { - results = results.concat(searchItems.filter(item => item.short_names - .filter(name => name.toLowerCase().includes(query.toLowerCase())).length > 0)) + results = [...new Set([...results, ...searchItems.filter(item => item.short_names + .filter(name => name.toLowerCase().includes(query.toLowerCase())).length > 0)])] } + console.debug('results', results) return results.slice(0, 5) },