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

View File

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

View File

@@ -12,6 +12,19 @@ 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
];
var default_emojis = [];
var zulip_emoji = {

View File

@@ -12,18 +12,6 @@ var APPROX_WIDTH = 255;
// implemented as the emoji_popover.
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 emoji_catalog_last_coordinates = {
section: 0,
@@ -129,7 +117,7 @@ exports.generate_emoji_picker_data = function (realm_emojis) {
});
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)) {
var emoji_name = emoji_codes.codepoint_to_name[codepoint];
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 other_emoji_matches = [];
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);
} else {
other_emoji_matches.push(obj);