mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +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) {
 | 
			
		||||
    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);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user