diff --git a/static/js/emoji_picker.js b/static/js/emoji_picker.js index 5fbb1c5fa9..8c4d9e07e1 100644 --- a/static/js/emoji_picker.js +++ b/static/js/emoji_picker.js @@ -247,12 +247,16 @@ function toggle_reaction(emoji_name) { exports.hide_emoji_popover(); } +function is_composition(emoji) { + return $(emoji).hasClass('composition'); +} + function maybe_select_emoji(e) { if (e.keyCode === 13) { // enter key e.preventDefault(); const first_emoji = get_rendered_emoji(0, 0); if (first_emoji) { - if (exports.is_composition(first_emoji)) { + if (is_composition(first_emoji)) { first_emoji.click(); } else { toggle_reaction(first_emoji.attr("data-emoji-name")); @@ -261,7 +265,7 @@ function maybe_select_emoji(e) { } } -exports.toggle_selected_emoji = function () { +function toggle_selected_emoji() { // Toggle the currently selected emoji. const selected_emoji = get_selected_emoji(); @@ -272,7 +276,7 @@ exports.toggle_selected_emoji = function () { const emoji_name = $(selected_emoji).attr("data-emoji-name"); toggle_reaction(emoji_name); -}; +} function round_off_to_previous_multiple(number_to_round, multiple) { return number_to_round - number_to_round % multiple; @@ -379,7 +383,7 @@ function change_focus_to_filter() { reset_emoji_showcase(); } -exports.navigate = function (event_name) { +exports.navigate = function (event_name, e) { if (event_name === 'toggle_reactions_popover' && exports.reactions_popped() && (search_is_active === false || search_results.length === 0)) { exports.hide_emoji_popover(); @@ -388,7 +392,16 @@ exports.navigate = function (event_name) { // If search is active and results are empty then return immediately. if (search_is_active === true && search_results.length === 0) { - return; + return true; + } + + if (event_name === 'enter') { + if (is_composition(e.target)) { + e.target.click(); + } else { + toggle_selected_emoji(); + } + return true; } const $popover = $(".emoji-popover").expectOne(); @@ -736,10 +749,6 @@ exports.register_click_handlers = function () { }); }; -exports.is_composition = function (emoji) { - return $(emoji).hasClass('composition'); -}; - exports.initialize = function () { exports.generate_emoji_picker_data(emoji.active_realm_emojis); }; diff --git a/static/js/hotkey.js b/static/js/hotkey.js index 1e21ddd545..1a02835ae7 100644 --- a/static/js/hotkey.js +++ b/static/js/hotkey.js @@ -282,12 +282,7 @@ exports.process_enter_key = function (e) { } if (emoji_picker.reactions_popped()) { - if (emoji_picker.is_composition(e.target)) { - e.target.click(); - } else { - emoji_picker.toggle_selected_emoji(); - } - return true; + return emoji_picker.navigate('enter', e); } if (exports.in_content_editable_widget(e)) {