refactor: Move list of frequent emojis to emoji.js.

All of our data related to emojis is in emoji.js.
Now typeahead_helper no longer depends on emoji_picker.

Generally we want typeahead_helper to only depend
on data modules to avoid complicated circular
dependencies (or at least mitigate them).
This commit is contained in:
Steve Howell
2018-08-04 12:49:43 +00:00
committed by Tim Abbott
parent f4a8ff415c
commit ab22b4411f
5 changed files with 27 additions and 29 deletions

View File

@@ -3,7 +3,7 @@ zrequire('dict');
zrequire('compose_state'); zrequire('compose_state');
zrequire('ui_util'); zrequire('ui_util');
zrequire('pm_conversations'); zrequire('pm_conversations');
zrequire('emoji_picker'); zrequire('emoji');
zrequire('util'); zrequire('util');
zrequire('Handlebars', 'handlebars'); zrequire('Handlebars', 'handlebars');
zrequire('templates'); zrequire('templates');
@@ -116,10 +116,9 @@ set_global('compose', {
finish: noop, finish: noop,
}); });
set_global('emoji', { emoji.active_realm_emojis = {};
active_realm_emojis: {}, emoji.emojis = emoji_list;
emojis: emoji_list,
});
set_global('pygments_data', {langs: set_global('pygments_data', {langs:
{python: 0, javscript: 1, html: 2, css: 3}, {python: 0, javscript: 1, html: 2, css: 3},
}); });

View File

@@ -8,7 +8,7 @@ zrequire('Handlebars', 'handlebars');
zrequire('recent_senders'); zrequire('recent_senders');
zrequire('pm_conversations'); zrequire('pm_conversations');
zrequire('people'); zrequire('people');
zrequire('emoji_picker'); zrequire('emoji');
zrequire('util'); zrequire('util');
zrequire('stream_data'); zrequire('stream_data');
zrequire('narrow'); zrequire('narrow');
@@ -498,15 +498,13 @@ run_test('render_stream', () => {
run_test('render_emoji', () => { run_test('render_emoji', () => {
// Test render_emoji with normal emoji. // Test render_emoji with normal emoji.
var rendered = false; var rendered = false;
var emoji = { var test_emoji = {
emoji_name: 'thumbs_up', emoji_name: 'thumbs_up',
codepoint: '1f44d', codepoint: '1f44d',
}; };
set_global('emoji', { emoji.active_realm_emojis = {
active_realm_emojis: {
realm_emoji: 'TBD', realm_emoji: 'TBD',
}, };
});
global.templates.render = function (template_name, args) { global.templates.render = function (template_name, args) {
assert.equal(template_name, 'typeahead_list_item'); assert.equal(template_name, 'typeahead_list_item');
@@ -520,12 +518,12 @@ run_test('render_emoji', () => {
rendered = true; rendered = true;
return 'typeahead-item-stub'; return 'typeahead-item-stub';
}; };
assert.equal(th.render_emoji(emoji), 'typeahead-item-stub'); assert.equal(th.render_emoji(test_emoji), 'typeahead-item-stub');
assert(rendered); assert(rendered);
// Test render_emoji with normal emoji. // Test render_emoji with normal emoji.
rendered = false; rendered = false;
emoji = { test_emoji = {
emoji_name: 'realm_emoji', emoji_name: 'realm_emoji',
emoji_url: 'TBD', emoji_url: 'TBD',
}; };
@@ -542,7 +540,7 @@ run_test('render_emoji', () => {
rendered = true; rendered = true;
return 'typeahead-item-stub'; return 'typeahead-item-stub';
}; };
assert.equal(th.render_emoji(emoji), 'typeahead-item-stub'); assert.equal(th.render_emoji(test_emoji), 'typeahead-item-stub');
assert(rendered); assert(rendered);
}); });

View File

@@ -12,6 +12,19 @@ exports.all_realm_emojis = {};
exports.active_realm_emojis = {}; exports.active_realm_emojis = {};
exports.default_emoji_aliases = {}; 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
];
var default_emojis = []; var default_emojis = [];
var zulip_emoji = { var zulip_emoji = {

View File

@@ -12,18 +12,6 @@ var APPROX_WIDTH = 255;
// implemented as the emoji_popover. // implemented as the emoji_popover.
exports.complete_emoji_catalog = []; exports.complete_emoji_catalog = [];
// 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
];
var current_message_emoji_popover_elem; var current_message_emoji_popover_elem;
var emoji_catalog_last_coordinates = { var emoji_catalog_last_coordinates = {
section: 0, section: 0,
@@ -129,7 +117,7 @@ exports.generate_emoji_picker_data = function (realm_emojis) {
}); });
exports.complete_emoji_catalog.Popular = []; exports.complete_emoji_catalog.Popular = [];
_.each(exports.frequently_used_emojis_list, function (codepoint) { _.each(emoji.frequently_used_emojis_list, function (codepoint) {
if (emoji_codes.codepoint_to_name.hasOwnProperty(codepoint)) { if (emoji_codes.codepoint_to_name.hasOwnProperty(codepoint)) {
var emoji_name = emoji_codes.codepoint_to_name[codepoint]; var emoji_name = emoji_codes.codepoint_to_name[codepoint];
if (emoji.emojis_by_name.hasOwnProperty(emoji_name)) { if (emoji.emojis_by_name.hasOwnProperty(emoji_name)) {

View File

@@ -168,7 +168,7 @@ function emoji_prefix_sort(query, objs, get_item) {
var popular_emoji_matches = []; var popular_emoji_matches = [];
var other_emoji_matches = []; var other_emoji_matches = [];
prefix_sort.matches.forEach(function (obj) { prefix_sort.matches.forEach(function (obj) {
if (emoji_picker.frequently_used_emojis_list.indexOf(obj.codepoint) !== -1) { if (emoji.frequently_used_emojis_list.indexOf(obj.codepoint) !== -1) {
popular_emoji_matches.push(obj); popular_emoji_matches.push(obj);
} else { } else {
other_emoji_matches.push(obj); other_emoji_matches.push(obj);