refactor: Move popular_emojis to typeahead library.

I removed a slightly confusing code comment, which I
will address in a follow up commit.  Basically,
"slight smile" still doesn't win over "small airplane"
when you search for "sm", which kind of defeats the
purpose of having popular_emojis for the typeahead
use case.  This is a problem with sort_emojis, though,
so when the comment was next to the list of popular
emojis, it wasn't really actionable.
This commit is contained in:
Steve Howell
2020-01-28 16:13:16 +00:00
committed by Tim Abbott
parent 16ae53890b
commit 011d52470c
4 changed files with 34 additions and 15 deletions

View File

@@ -7,19 +7,6 @@ exports.all_realm_emojis = {};
exports.active_realm_emojis = {};
exports.default_emoji_aliases = {};
// Unfortunately, this list does not currently match on
// alias names like party_popper, simple_smile, and
// hammer_and_wrench. But thumbs_up sorts to the top
// for some other reason.
exports.frequently_used_emojis_list = [
'1f44d', // +1
'1f389', // tada
'1f642', // slight_smile
'2764', // heart
'1f6e0', // working_on_it
'1f419', // octopus
];
const zulip_emoji = {
id: 'zulip',
emoji_name: 'zulip',

View File

@@ -1,3 +1,5 @@
const typeahead = require("../shared/js/typeahead");
const render_emoji_popover = require('../templates/emoji_popover.hbs');
const render_emoji_popover_content = require('../templates/emoji_popover_content.hbs');
const render_emoji_popover_search_results = require('../templates/emoji_popover_search_results.hbs');
@@ -119,7 +121,7 @@ exports.generate_emoji_picker_data = function (realm_emojis) {
});
exports.complete_emoji_catalog.Popular = [];
_.each(emoji.frequently_used_emojis_list, function (codepoint) {
_.each(typeahead.popular_emojis, function (codepoint) {
if (emoji_codes.codepoint_to_name.hasOwnProperty(codepoint)) {
const emoji_name = emoji_codes.codepoint_to_name[codepoint];
if (emoji.emojis_by_name.hasOwnProperty(emoji_name)) {

View File

@@ -167,7 +167,7 @@ exports.sort_emojis = function (objs, query) {
const other_emoji_matches = [];
for (const obj of triage_results.matches) {
if (emoji.frequently_used_emojis_list.indexOf(obj.emoji_code) !== -1) {
if (typeahead.popular_emojis.indexOf(obj.emoji_code) !== -1) {
popular_emoji_matches.push(obj);
} else {
other_emoji_matches.push(obj);

View File

@@ -1,3 +1,33 @@
/*
We hand selected the following emojis a few years
ago to be given extra precedence in our typeahead
algorithms and emoji picker UIs. We call them "popular"
emojis for historical reasons, although we've never
technically measured their popularity (and any
results now would be biased in favor of the ones
below, since they've easier to submit). Nonetheless, it
is often convenient to quickly find these. We can
adjust this list over time; we just need to make
sure it works well with the emoji picker's layout
if you increase the number of them.
For typeahead we'll favor any of these as long as
the emoji code matches. For example, we'll show the
emoji with code 1f44d at the top of your suggestions
whether you type "+" as a prefix for "+1"
or "th" as a prefix for "thumbs up". The caveat is
that other factors still may matter more, such as
prefix matches trumping "popularity".
*/
exports.popular_emojis = [
'1f44d', // +1
'1f389', // tada
'1f642', // slight_smile
'2764', // heart
'1f6e0', // working_on_it
'1f419', // octopus
];
const unicode_marks = /\p{M}/gu;
exports.remove_diacritics = function (s) {