emoji_picker: Allow selecting multiple while holding Shift.

We detect shift with event.shiftKey so we need to pass the event around.

Fixes #8465.
This commit is contained in:
Gittenburg 2020-07-06 22:55:45 +02:00 committed by Tim Abbott
parent 1113589b9d
commit 5bb10036b5
3 changed files with 18 additions and 9 deletions

View File

@ -235,7 +235,7 @@ function filter_emojis() {
} }
} }
function toggle_reaction(emoji_name) { function toggle_reaction(emoji_name, event) {
const message_id = current_msg_list.selected_id(); const message_id = current_msg_list.selected_id();
const message = message_store.get(message_id); const message = message_store.get(message_id);
if (!message) { if (!message) {
@ -243,8 +243,13 @@ function toggle_reaction(emoji_name) {
return; return;
} }
reactions.toggle_emoji_reaction(message_id, emoji_name); reactions.toggle_emoji_reaction(message_id, emoji_name, event);
exports.hide_emoji_popover();
if (event === undefined || !event.shiftKey) {
exports.hide_emoji_popover();
}
$(event.target).closest('.reaction').toggleClass('reacted');
} }
function is_composition(emoji) { function is_composition(emoji) {
@ -259,13 +264,13 @@ function maybe_select_emoji(e) {
if (is_composition(first_emoji)) { if (is_composition(first_emoji)) {
first_emoji.click(); first_emoji.click();
} else { } else {
toggle_reaction(first_emoji.attr("data-emoji-name")); toggle_reaction(first_emoji.attr("data-emoji-name"), e);
} }
} }
} }
} }
function toggle_selected_emoji() { function toggle_selected_emoji(e) {
// Toggle the currently selected emoji. // Toggle the currently selected emoji.
const selected_emoji = get_selected_emoji(); const selected_emoji = get_selected_emoji();
@ -275,7 +280,7 @@ function toggle_selected_emoji() {
const emoji_name = $(selected_emoji).attr("data-emoji-name"); const emoji_name = $(selected_emoji).attr("data-emoji-name");
toggle_reaction(emoji_name); toggle_reaction(emoji_name, e);
} }
function round_off_to_previous_multiple(number_to_round, multiple) { function round_off_to_previous_multiple(number_to_round, multiple) {
@ -399,7 +404,7 @@ exports.navigate = function (event_name, e) {
if (is_composition(e.target)) { if (is_composition(e.target)) {
e.target.click(); e.target.click();
} else { } else {
toggle_selected_emoji(); toggle_selected_emoji(e);
} }
return true; return true;
} }
@ -634,13 +639,13 @@ exports.toggle_emoji_popover = function (element, id) {
exports.register_click_handlers = function () { exports.register_click_handlers = function () {
$(document).on('click', '.emoji-popover-emoji.reaction', function () { $(document).on('click', '.emoji-popover-emoji.reaction', function (e) {
// When an emoji is clicked in the popover, // When an emoji is clicked in the popover,
// if the user has reacted to this message with this emoji // if the user has reacted to this message with this emoji
// the reaction is removed // the reaction is removed
// otherwise, the reaction is added // otherwise, the reaction is added
const emoji_name = $(this).attr("data-emoji-name"); const emoji_name = $(this).attr("data-emoji-name");
toggle_reaction(emoji_name); toggle_reaction(emoji_name, e);
}); });
$(document).on('click', '.emoji-popover-emoji.composition', function (e) { $(document).on('click', '.emoji-popover-emoji.composition', function (e) {

View File

@ -124,6 +124,7 @@
.emoji-info-popover { .emoji-info-popover {
padding: 0; padding: 0;
height: 370px; height: 370px;
user-select: none;
.popover-content { .popover-content {
padding: 0; padding: 0;

View File

@ -26,6 +26,9 @@ underneath the message.
If someone has already added a reaction, you can just click or tap on it to If someone has already added a reaction, you can just click or tap on it to
second the reaction. second the reaction.
If you'd like to add multiple reactions without closing the emoji
picker, you can hold the `Shift` key while making selections.
## See who reacted to a message ## See who reacted to a message
Hover over an emoji reaction on a message to see who reacted with that emoji. Hover over an emoji reaction on a message to see who reacted with that emoji.