mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
emoji_picker: Refactor toggle_emoji_popover to split out to functions.
This commit is contained in:
committed by
Steve Howell
parent
f645a0304b
commit
0dcbacdbc6
@@ -178,24 +178,17 @@ function add_scrollbar(element) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.toggle_emoji_popover = function (element, id) {
|
function refill_section_head_offsets(popover) {
|
||||||
var last_popover_elem = current_message_emoji_popover_elem;
|
section_head_offsets = [];
|
||||||
popovers.hide_all();
|
popover.find('.emoji-popover-subheading').each(function () {
|
||||||
if (last_popover_elem !== undefined
|
section_head_offsets.push({
|
||||||
&& last_popover_elem.get()[0] === element) {
|
section: $(this).attr('data-section'),
|
||||||
// We want it to be the case that a user can dismiss a popover
|
position_y: $(this).position().top,
|
||||||
// by clicking on the same element that caused the popover.
|
});
|
||||||
return;
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$(element).closest('.message_row').toggleClass('has_popover has_emoji_popover');
|
exports.render_emoji_popover = function (elt, id) {
|
||||||
var elt = $(element);
|
|
||||||
if (id !== undefined) {
|
|
||||||
current_msg_list.select_id(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (elt.data('popover') === undefined) {
|
|
||||||
elt.prop('title', '');
|
|
||||||
var template_args = {
|
var template_args = {
|
||||||
class: "emoji-info-popover",
|
class: "emoji-info-popover",
|
||||||
categories: get_rendered_emoji_categories(),
|
categories: get_rendered_emoji_categories(),
|
||||||
@@ -223,18 +216,31 @@ exports.toggle_emoji_popover = function (element, id) {
|
|||||||
show_emoji_catalog();
|
show_emoji_catalog();
|
||||||
|
|
||||||
var popover = elt.data('popover').$tip;
|
var popover = elt.data('popover').$tip;
|
||||||
|
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,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
var $emoji_map = popover.find('.emoji-popover-emoji-map');
|
var $emoji_map = popover.find('.emoji-popover-emoji-map');
|
||||||
$emoji_map.on("scroll", function () {
|
$emoji_map.on("scroll", function () {
|
||||||
emoji_picker.emoji_select_tab($emoji_map);
|
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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user