From 6f8c91254ec816b25d73b9edadebc8db2e76edd2 Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Tue, 1 Feb 2022 22:36:48 +0100 Subject: [PATCH] FEATURE: Partial match aliases in emoji filter (#15613) --- .../javascripts/discourse/tests/unit/lib/emoji-test.js | 7 +++++++ app/assets/javascripts/pretty-text/addon/emoji.js | 8 +++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js b/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js index 77ce2d61d1d..8be1a2a50ac 100644 --- a/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js +++ b/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js @@ -158,4 +158,11 @@ discourseModule("Unit | Utility | emoji", function () { assert.deepEqual(matches, ["bowing_man"]); }); + + test("search does partial-match on emoji aliases", function (assert) { + const matches = emojiSearch("instru"); + + assert.ok(matches.includes("woman_teacher")); + assert.ok(matches.includes("violin")); + }); }); diff --git a/app/assets/javascripts/pretty-text/addon/emoji.js b/app/assets/javascripts/pretty-text/addon/emoji.js index 9d79a6ce61b..16d4b31aea2 100644 --- a/app/assets/javascripts/pretty-text/addon/emoji.js +++ b/app/assets/javascripts/pretty-text/addon/emoji.js @@ -222,9 +222,11 @@ export function emojiSearch(term, options) { } } - if (searchAliases[term]) { - for (const emoji of searchAliases[term]) { - addResult(emoji); + for (const [key, value] of Object.entries(searchAliases)) { + if (key.startsWith(term)) { + for (const emoji of value) { + addResult(emoji); + } } }