diff --git a/static/js/hotkey.js b/static/js/hotkey.js index 91834f17fa..2b63578d17 100644 --- a/static/js/hotkey.js +++ b/static/js/hotkey.js @@ -282,6 +282,11 @@ exports.process_enter_key = function (e) { return true; } + if (popovers.reactions_popped()) { + reactions.toggle_reaction(current_msg_list.selected_id()); + return true; + } + if (exports.is_editing_stream_name(e)) { $(e.target).parent().find(".checkmark").click(); return false; diff --git a/static/js/reactions.js b/static/js/reactions.js index 0f73e198e7..2c5793a37e 100644 --- a/static/js/reactions.js +++ b/static/js/reactions.js @@ -51,7 +51,18 @@ exports.message_reaction_on_click = function (message_id, emoji_name) { send_reaction_ajax(message_id, emoji_name, operation); }; +function get_selected_emoji() { + return $(".reaction-popover-reaction").filter(":focus")[0]; +} + exports.toggle_reaction = function (message_id, emoji_name) { + var selected_emoji = get_selected_emoji(); + if (emoji_name === undefined && selected_emoji === undefined) { + return; + } + if (selected_emoji) { + emoji_name = selected_emoji.title; + } var user_list = get_user_list_for_message_reaction(message_id, emoji_name); var operation = 'add'; if (user_list.indexOf(page_params.user_id) !== -1) {