Simplify/rename code to choose reaction in emoji picker.

We now call the function toggle_selected_emoji(), and it
is simpler in these ways:

    * We get the selected emoji more directly.
    * We reuse code in toggle_emoji_reaction().
This commit is contained in:
Steve Howell
2017-05-29 16:09:46 -06:00
parent ed2ceb49cb
commit 3654406f17
2 changed files with 26 additions and 22 deletions

View File

@@ -253,7 +253,7 @@ exports.process_enter_key = function (e) {
if (emoji_picker.is_composition(e.target)) {
e.target.click();
} else {
reactions.toggle_reaction(current_msg_list.selected_id());
reactions.toggle_selected_emoji();
}
return true;
}

View File

@@ -75,27 +75,6 @@ function get_selected_emoji() {
return $(".emoji-popover-emoji").filter(":focus")[0];
}
exports.toggle_reaction = function (message_id, emoji_name) {
var message = get_message(message_id);
if (!message) {
return;
}
var selected_emoji = get_selected_emoji();
if (emoji_name === undefined && selected_emoji === undefined) {
return;
}
if (selected_emoji) {
emoji_name = selected_emoji.title;
}
var has_reacted = exports.current_user_has_reacted_to_emoji(message, emoji_name);
var operation = has_reacted ? 'remove' : 'add';
send_reaction_ajax(message_id, emoji_name, operation);
emoji_picker.hide_emoji_popover();
};
var reaction_show_list = []; // local reaction_show_list
exports.render_reaction_show_list = function () {
@@ -168,9 +147,34 @@ $(document).on('click', '.emoji-popover-emoji.reaction', function () {
exports.toggle_emoji_reaction(message_id, emoji_name);
});
// TODO: Move emoji-picker stuff to emoji_picker.js.
// (two click handlers, toggle_selected_emoji, reaction_navigate)
$(document).on('input', '.emoji-popover-filter', filter_emojis);
$(document).on('keydown', '.emoji-popover-filter', maybe_select_emoji);
exports.toggle_selected_emoji = function () {
// Toggle the currently selected emoji.
var message_id = current_msg_list.selected_id();
var message = message_store.get(message_id);
if (!message) {
blueslip.error('reactions: Bad message id: ' + message_id);
return;
}
var selected_emoji = get_selected_emoji();
if (selected_emoji === undefined) {
return;
}
var emoji_name = selected_emoji.title;
exports.toggle_emoji_reaction(message_id, emoji_name);
};
exports.reaction_navigate = function (e, event_name) {
var first_emoji = get_emoji_at_index(0);
var selected_emoji = get_selected_emoji();