emoji_picker: Refactor toggle_emoji_popover to split out to functions.

This commit is contained in:
Aditya Bansal
2017-08-20 15:54:00 +05:30
committed by Steve Howell
parent f645a0304b
commit 0dcbacdbc6

View File

@@ -178,24 +178,17 @@ function add_scrollbar(element) {
});
}
exports.toggle_emoji_popover = function (element, id) {
var last_popover_elem = current_message_emoji_popover_elem;
popovers.hide_all();
if (last_popover_elem !== undefined
&& last_popover_elem.get()[0] === element) {
// We want it to be the case that a user can dismiss a popover
// by clicking on the same element that caused the popover.
return;
}
function refill_section_head_offsets(popover) {
section_head_offsets = [];
popover.find('.emoji-popover-subheading').each(function () {
section_head_offsets.push({
section: $(this).attr('data-section'),
position_y: $(this).position().top,
});
});
}
$(element).closest('.message_row').toggleClass('has_popover has_emoji_popover');
var elt = $(element);
if (id !== undefined) {
current_msg_list.select_id(id);
}
if (elt.data('popover') === undefined) {
elt.prop('title', '');
exports.render_emoji_popover = function (elt, id) {
var template_args = {
class: "emoji-info-popover",
categories: get_rendered_emoji_categories(),
@@ -223,18 +216,31 @@ exports.toggle_emoji_popover = function (element, id) {
show_emoji_catalog();
var popover = elt.data('popover').$tip;
section_head_offsets = [];
popover.find('.emoji-popover-subheading').each(function () {
section_head_offsets.push({
section: $(this).attr('data-section'),
position_y: $(this).position().top,
});
});
refill_section_head_offsets(popover);
var $emoji_map = popover.find('.emoji-popover-emoji-map');
$emoji_map.on("scroll", function () {
emoji_picker.emoji_select_tab($emoji_map);
});
};
exports.toggle_emoji_popover = function (element, id) {
var last_popover_elem = current_message_emoji_popover_elem;
popovers.hide_all();
if (last_popover_elem !== undefined
&& last_popover_elem.get()[0] === element) {
// We want it to be the case that a user can dismiss a popover
// by clicking on the same element that caused the popover.
return;
}
$(element).closest('.message_row').toggleClass('has_popover has_emoji_popover');
var elt = $(element);
if (id !== undefined) {
current_msg_list.select_id(id);
}
if (elt.data('popover') === undefined) {
emoji_picker.render_emoji_popover(elt, id);
}
};