mirror of
https://github.com/zulip/zulip.git
synced 2025-11-19 05:58:25 +00:00
message_edit: Refactor message edit keydown handler.
This commit modifies handle_message_row_edit_keydown to use keydown_util.is_enter_event(). This is a precursor to fixing #22062.
This commit is contained in:
committed by
Tim Abbott
parent
836f0fed10
commit
56970ee117
@@ -317,49 +317,44 @@ export function end_if_focused_on_message_row_edit() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handle_message_row_edit_keydown(e) {
|
function handle_message_row_edit_keydown(e) {
|
||||||
switch (e.key) {
|
if (keydown_util.is_enter_event(e)) {
|
||||||
case "Enter":
|
if ($(e.target).hasClass("message_edit_content")) {
|
||||||
if ($(e.target).hasClass("message_edit_content")) {
|
// Pressing Enter to save edits is coupled with Enter to send
|
||||||
// Pressing Enter to save edits is coupled with Enter to send
|
if (composebox_typeahead.should_enter_send(e)) {
|
||||||
if (composebox_typeahead.should_enter_send(e)) {
|
const $row = $(".message_edit_content:focus").closest(".message_row");
|
||||||
const $row = $(".message_edit_content:focus").closest(".message_row");
|
const $message_edit_save_button = $row.find(".message_edit_save");
|
||||||
const $message_edit_save_button = $row.find(".message_edit_save");
|
if ($message_edit_save_button.prop("disabled")) {
|
||||||
if ($message_edit_save_button.prop("disabled")) {
|
// In cases when the save button is disabled
|
||||||
// In cases when the save button is disabled
|
// we need to disable save on pressing Enter
|
||||||
// we need to disable save on pressing Enter
|
// Prevent default to avoid new-line on pressing
|
||||||
// Prevent default to avoid new-line on pressing
|
// Enter inside the textarea in this case
|
||||||
// Enter inside the textarea in this case
|
|
||||||
e.preventDefault();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
save_message_row_edit($row);
|
|
||||||
e.stopPropagation();
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
} else {
|
|
||||||
composebox_typeahead.handle_enter($(e.target), e);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else if ($(".typeahead:visible").length > 0) {
|
|
||||||
// Accepting typeahead is handled by the typeahead library.
|
|
||||||
return;
|
|
||||||
} else if (
|
|
||||||
$(e.target).hasClass("message_edit_topic") ||
|
|
||||||
$(e.target).hasClass("message_edit_topic_propagate")
|
|
||||||
) {
|
|
||||||
// Enter should save the topic edit, as long as it's
|
|
||||||
// not being used to accept typeahead.
|
|
||||||
const $row = $(e.target).closest(".message_row");
|
|
||||||
save_message_row_edit($row);
|
save_message_row_edit($row);
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
e.preventDefault();
|
||||||
|
} else {
|
||||||
|
composebox_typeahead.handle_enter($(e.target), e);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
} else if ($(".typeahead:visible").length > 0) {
|
||||||
|
// Accepting typeahead is handled by the typeahead library.
|
||||||
return;
|
return;
|
||||||
case "Escape": // Handle escape keys in the message_edit form.
|
} else if (
|
||||||
end_if_focused_on_message_row_edit();
|
$(e.target).hasClass("message_edit_topic") ||
|
||||||
|
$(e.target).hasClass("message_edit_topic_propagate")
|
||||||
|
) {
|
||||||
|
// Enter should save the topic edit, as long as it's
|
||||||
|
// not being used to accept typeahead.
|
||||||
|
const $row = $(e.target).closest(".message_row");
|
||||||
|
save_message_row_edit($row);
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
}
|
||||||
return;
|
} else if (e.key === "Escape") {
|
||||||
default:
|
end_if_focused_on_message_row_edit();
|
||||||
return;
|
e.stopPropagation();
|
||||||
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user