compose_state: Make get_or_set accept a full selector.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2023-11-02 11:29:54 -07:00
committed by Tim Abbott
parent daa34685c3
commit d6be353299
29 changed files with 191 additions and 191 deletions

View File

@@ -814,7 +814,7 @@ export function initialize() {
// We do the same when copying a code block, since the // We do the same when copying a code block, since the
// most likely next action within Zulip is to paste it // most likely next action within Zulip is to paste it
// into compose and modify it. // into compose and modify it.
$("#compose-textarea").trigger("focus"); $("textarea#compose-textarea").trigger("focus");
return; return;
} else if ( } else if (
!window.getSelection().toString() && !window.getSelection().toString() &&

View File

@@ -42,13 +42,13 @@ export function clear_private_stream_alert() {
} }
export function clear_preview_area() { export function clear_preview_area() {
$("#compose-textarea").show(); $("textarea#compose-textarea").show();
$("#compose-textarea").trigger("focus"); $("textarea#compose-textarea").trigger("focus");
$("#compose .undo_markdown_preview").hide(); $("#compose .undo_markdown_preview").hide();
$("#compose .preview_message_area").hide(); $("#compose .preview_message_area").hide();
$("#compose .preview_content").empty(); $("#compose .preview_content").empty();
$("#compose .markdown_preview").show(); $("#compose .markdown_preview").show();
autosize.update($("#compose-textarea")); autosize.update($("textarea#compose-textarea"));
// While in preview mode we disable unneeded compose_control_buttons, // While in preview mode we disable unneeded compose_control_buttons,
// so here we are re-enabling those compose_control_buttons // so here we are re-enabling those compose_control_buttons
@@ -107,11 +107,11 @@ export function clear_compose_box() {
if (compose_ui.is_full_size()) { if (compose_ui.is_full_size()) {
compose_ui.make_compose_box_original_size(); compose_ui.make_compose_box_original_size();
} }
$("#compose-textarea").val("").trigger("focus"); $("textarea#compose-textarea").val("").trigger("focus");
compose_validate.check_overflow_text(); compose_validate.check_overflow_text();
compose_validate.clear_topic_resolved_warning(); compose_validate.clear_topic_resolved_warning();
$("#compose-textarea").removeData("draft-id"); $("textarea#compose-textarea").removeData("draft-id");
compose_ui.autosize_textarea($("#compose-textarea")); compose_ui.autosize_textarea($("textarea#compose-textarea"));
compose_banner.clear_errors(); compose_banner.clear_errors();
compose_banner.clear_warnings(); compose_banner.clear_warnings();
compose_banner.clear_uploads(); compose_banner.clear_uploads();
@@ -121,8 +121,8 @@ export function clear_compose_box() {
export function send_message_success(request, data) { export function send_message_success(request, data) {
if (!request.locally_echoed) { if (!request.locally_echoed) {
if ($("#compose-textarea").data("draft-id")) { if ($("textarea#compose-textarea").data("draft-id")) {
drafts.draft_model.deleteDraft($("#compose-textarea").data("draft-id")); drafts.draft_model.deleteDraft($("textarea#compose-textarea").data("draft-id"));
} }
clear_compose_box(); clear_compose_box();
} }
@@ -187,7 +187,7 @@ export function send_message(request = create_message_object()) {
response, response,
compose_banner.CLASSNAMES.generic_compose_error, compose_banner.CLASSNAMES.generic_compose_error,
$("#compose_banners"), $("#compose_banners"),
$("#compose-textarea"), $("textarea#compose-textarea"),
); );
// For messages that were not locally echoed, we're // For messages that were not locally echoed, we're
// responsible for hiding the compose spinner to restore // responsible for hiding the compose spinner to restore
@@ -367,7 +367,7 @@ function schedule_message_to_custom_date() {
const $banner_container = $("#compose_banners"); const $banner_container = $("#compose_banners");
const success = function (data) { const success = function (data) {
drafts.draft_model.deleteDraft($("#compose-textarea").data("draft-id")); drafts.draft_model.deleteDraft($("textarea#compose-textarea").data("draft-id"));
clear_compose_box(); clear_compose_box();
const new_row = render_success_message_scheduled_banner({ const new_row = render_success_message_scheduled_banner({
scheduled_message_id: data.scheduled_message_id, scheduled_message_id: data.scheduled_message_id,
@@ -384,7 +384,7 @@ function schedule_message_to_custom_date() {
response, response,
compose_banner.CLASSNAMES.generic_compose_error, compose_banner.CLASSNAMES.generic_compose_error,
$banner_container, $banner_container,
$("#compose-textarea"), $("textarea#compose-textarea"),
); );
}; };

View File

@@ -81,9 +81,9 @@ function clear_box() {
compose_state.set_recipient_edited_manually(false); compose_state.set_recipient_edited_manually(false);
clear_textarea(); clear_textarea();
compose_validate.check_overflow_text(); compose_validate.check_overflow_text();
$("#compose-textarea").removeData("draft-id"); $("textarea#compose-textarea").removeData("draft-id");
$("#compose-textarea").toggleClass("invalid", false); $("textarea#compose-textarea").toggleClass("invalid", false);
compose_ui.autosize_textarea($("#compose-textarea")); compose_ui.autosize_textarea($("textarea#compose-textarea"));
compose_banner.clear_errors(); compose_banner.clear_errors();
compose_banner.clear_warnings(); compose_banner.clear_warnings();
compose_banner.clear_uploads(); compose_banner.clear_uploads();
@@ -91,7 +91,7 @@ function clear_box() {
export function autosize_message_content() { export function autosize_message_content() {
if (!compose_ui.is_full_size()) { if (!compose_ui.is_full_size()) {
autosize($("#compose-textarea"), { autosize($("textarea#compose-textarea"), {
callback() { callback() {
maybe_scroll_up_selected_message(); maybe_scroll_up_selected_message();
}, },
@@ -271,13 +271,13 @@ export function start(msg_type, opts) {
show_compose_box(msg_type, opts); show_compose_box(msg_type, opts);
if (opts.draft_id) { if (opts.draft_id) {
$("#compose-textarea").data("draft-id", opts.draft_id); $("textarea#compose-textarea").data("draft-id", opts.draft_id);
} }
if (opts.content !== undefined) { if (opts.content !== undefined) {
// If we were provided with message content, we might need to // If we were provided with message content, we might need to
// resize the compose box, or display that it's too long. // resize the compose box, or display that it's too long.
compose_ui.autosize_textarea($("#compose-textarea")); compose_ui.autosize_textarea($("textarea#compose-textarea"));
compose_validate.check_overflow_text(); compose_validate.check_overflow_text();
} }
@@ -307,7 +307,7 @@ export function cancel() {
compose_ui.make_compose_box_original_size(); compose_ui.make_compose_box_original_size();
} }
$("#compose-textarea").height(40 + "px"); $("textarea#compose-textarea").height(40 + "px");
if (page_params.narrow !== undefined) { if (page_params.narrow !== undefined) {
// Never close the compose box in narrow embedded windows, but // Never close the compose box in narrow embedded windows, but
@@ -376,7 +376,7 @@ export function on_topic_narrow() {
compose_validate.warn_if_topic_resolved(true); compose_validate.warn_if_topic_resolved(true);
compose_fade.set_focused_recipient("stream"); compose_fade.set_focused_recipient("stream");
compose_fade.update_message_list(); compose_fade.update_message_list();
$("#compose-textarea").trigger("focus"); $("textarea#compose-textarea").trigger("focus");
} }
export function on_narrow(opts) { export function on_narrow(opts) {

View File

@@ -120,7 +120,7 @@ export function initialize() {
// Refocus in the content box so you can continue typing or // Refocus in the content box so you can continue typing or
// press Enter to send. // press Enter to send.
$("#compose-textarea").trigger("focus"); $("textarea#compose-textarea").trigger("focus");
channel.patch({ channel.patch({
url: "/json/settings", url: "/json/settings",

View File

@@ -295,12 +295,12 @@ function on_hidden_callback() {
// Always move focus to the topic input even if it's not empty, // Always move focus to the topic input even if it's not empty,
// since it's likely the user will want to update the topic // since it's likely the user will want to update the topic
// after updating the stream. // after updating the stream.
ui_util.place_caret_at_end($("#stream_message_recipient_topic")[0]); ui_util.place_caret_at_end($("input#stream_message_recipient_topic")[0]);
} else { } else {
if (compose_state.private_message_recipient().length === 0) { if (compose_state.private_message_recipient().length === 0) {
$("#private_message_recipient").trigger("focus").trigger("select"); $("#private_message_recipient").trigger("focus").trigger("select");
} else { } else {
$("#compose-textarea").trigger("focus"); $("textarea#compose-textarea").trigger("focus");
} }
} }
} }
@@ -339,7 +339,7 @@ export function initialize() {
export function update_placeholder_text() { export function update_placeholder_text() {
// Change compose placeholder text only if compose box is open. // Change compose placeholder text only if compose box is open.
if (!$("#compose-textarea").is(":visible")) { if (!$("textarea#compose-textarea").is(":visible")) {
return; return;
} }
@@ -352,5 +352,5 @@ export function update_placeholder_text() {
private_message_recipient: compose_pm_pill.get_emails(), private_message_recipient: compose_pm_pill.get_emails(),
}; };
$("#compose-textarea").attr("placeholder", compose_ui.compute_placeholder_text(opts)); $("textarea#compose-textarea").attr("placeholder", compose_ui.compute_placeholder_text(opts));
} }

View File

@@ -124,7 +124,7 @@ export function reply_with_mention(opts) {
} }
export function quote_and_reply(opts) { export function quote_and_reply(opts) {
const $textarea = $("#compose-textarea"); const $textarea = $("textarea#compose-textarea");
const message_id = message_lists.current.selected_id(); const message_id = message_lists.current.selected_id();
const message = message_lists.current.selected_message(); const message = message_lists.current.selected_message();
const quoting_placeholder = $t({defaultMessage: "[Quoting…]"}); const quoting_placeholder = $t({defaultMessage: "[Quoting…]"});
@@ -159,7 +159,7 @@ export function quote_and_reply(opts) {
content += `${fence}quote\n${message.raw_content}\n${fence}`; content += `${fence}quote\n${message.raw_content}\n${fence}`;
compose_ui.replace_syntax(quoting_placeholder, content, $textarea); compose_ui.replace_syntax(quoting_placeholder, content, $textarea);
compose_ui.autosize_textarea($("#compose-textarea")); compose_ui.autosize_textarea($("textarea#compose-textarea"));
} }
if (message && message.raw_content) { if (message && message.raw_content) {

View File

@@ -47,18 +47,18 @@ export function initialize() {
$("#below-compose-content .video_link").toggle(compose_call.compute_show_video_chat_button()); $("#below-compose-content .video_link").toggle(compose_call.compute_show_video_chat_button());
$("#below-compose-content .audio_link").toggle(compose_call.compute_show_audio_chat_button()); $("#below-compose-content .audio_link").toggle(compose_call.compute_show_audio_chat_button());
$("#compose-textarea").on("keydown", (event) => { $("textarea#compose-textarea").on("keydown", (event) => {
compose_ui.handle_keydown(event, $("#compose-textarea").expectOne()); compose_ui.handle_keydown(event, $("textarea#compose-textarea").expectOne());
}); });
$("#compose-textarea").on("keyup", (event) => { $("textarea#compose-textarea").on("keyup", (event) => {
compose_ui.handle_keyup(event, $("#compose-textarea").expectOne()); compose_ui.handle_keyup(event, $("textarea#compose-textarea").expectOne());
}); });
$("#compose-textarea").on("input propertychange", () => { $("textarea#compose-textarea").on("input propertychange", () => {
compose_validate.warn_if_topic_resolved(false); compose_validate.warn_if_topic_resolved(false);
const compose_text_length = compose_validate.check_overflow_text(); const compose_text_length = compose_validate.check_overflow_text();
if (compose_text_length !== 0 && $("#compose-textarea").hasClass("invalid")) { if (compose_text_length !== 0 && $("textarea#compose-textarea").hasClass("invalid")) {
$("#compose-textarea").toggleClass("invalid", false); $("textarea#compose-textarea").toggleClass("invalid", false);
} }
// Change compose close button tooltip as per condition. // Change compose close button tooltip as per condition.
// We save compose text in draft only if its length is > 2. // We save compose text in draft only if its length is > 2.
@@ -229,7 +229,7 @@ export function initialize() {
error_message, error_message,
compose_banner.CLASSNAMES.generic_compose_error, compose_banner.CLASSNAMES.generic_compose_error,
$banner_container, $banner_container,
$("#compose-textarea"), $("textarea#compose-textarea"),
); );
$(event.target).prop("disabled", true); $(event.target).prop("disabled", true);
} }
@@ -330,8 +330,8 @@ export function initialize() {
$("#compose").addClass("preview_mode"); $("#compose").addClass("preview_mode");
$("#compose .preview_mode_disabled .compose_control_button").attr("tabindex", -1); $("#compose .preview_mode_disabled .compose_control_button").attr("tabindex", -1);
const content = $("#compose-textarea").val(); const content = $("textarea#compose-textarea").val();
$("#compose-textarea").hide(); $("textarea#compose-textarea").hide();
$("#compose .markdown_preview").hide(); $("#compose .markdown_preview").hide();
$("#compose .undo_markdown_preview").show(); $("#compose .undo_markdown_preview").show();
$("#compose .undo_markdown_preview").trigger("focus"); $("#compose .undo_markdown_preview").trigger("focus");
@@ -370,12 +370,12 @@ export function initialize() {
compose_ui.make_compose_box_original_size(); compose_ui.make_compose_box_original_size();
}); });
$("#compose-textarea").on("focus", () => { $("textarea#compose-textarea").on("focus", () => {
compose_recipient.update_placeholder_text(); compose_recipient.update_placeholder_text();
}); });
$("#compose_recipient_box").on("click", "#recipient_box_clear_topic_button", () => { $("#compose_recipient_box").on("click", "#recipient_box_clear_topic_button", () => {
const $input = $("#stream_message_recipient_topic"); const $input = $("input#stream_message_recipient_topic");
const $button = $("#recipient_box_clear_topic_button"); const $button = $("#recipient_box_clear_topic_button");
$input.val(""); $input.val("");
@@ -383,7 +383,7 @@ export function initialize() {
$button.hide(); $button.hide();
}); });
$("#compose_recipient_box").on("input", "#stream_message_recipient_topic", (e) => { $("#compose_recipient_box").on("input", "input#stream_message_recipient_topic", (e) => {
const $button = $("#recipient_box_clear_topic_button"); const $button = $("#recipient_box_clear_topic_button");
const value = $(e.target).val(); const value = $(e.target).val();
if (value.length === 0) { if (value.length === 0) {
@@ -393,11 +393,11 @@ export function initialize() {
} }
}); });
$("#stream_message_recipient_topic").on("focus", () => { $("input#stream_message_recipient_topic").on("focus", () => {
compose_recipient.update_placeholder_text(); compose_recipient.update_placeholder_text();
}); });
$("#stream_message_recipient_topic").on("input", () => { $("input#stream_message_recipient_topic").on("input", () => {
compose_recipient.update_placeholder_text(); compose_recipient.update_placeholder_text();
}); });

View File

@@ -50,12 +50,12 @@ export function composing() {
return Boolean(message_type); return Boolean(message_type);
} }
function get_or_set(fieldname, keep_leading_whitespace, no_trim) { function get_or_set(input_selector, keep_leading_whitespace, no_trim) {
// We can't hoist the assignment of '$elem' out of this lambda, // We can't hoist the assignment of '$elem' out of this lambda,
// because the DOM element might not exist yet when get_or_set // because the DOM element might not exist yet when get_or_set
// is called. // is called.
return function (newval) { return function (newval) {
const $elem = $(`#${CSS.escape(fieldname)}`); const $elem = $(input_selector);
const oldval = $elem.val(); const oldval = $elem.val();
if (newval !== undefined) { if (newval !== undefined) {
$elem.val(newval); $elem.val(newval);
@@ -108,7 +108,7 @@ export function set_compose_recipient_id(recipient_id) {
} }
// TODO: Break out setter and getter into their own functions. // TODO: Break out setter and getter into their own functions.
export const topic = get_or_set("stream_message_recipient_topic"); export const topic = get_or_set("input#stream_message_recipient_topic");
export function empty_topic_placeholder() { export function empty_topic_placeholder() {
return $t({defaultMessage: "(no topic)"}); return $t({defaultMessage: "(no topic)"});
@@ -116,12 +116,12 @@ export function empty_topic_placeholder() {
// We can't trim leading whitespace in `compose_textarea` because // We can't trim leading whitespace in `compose_textarea` because
// of the indented syntax for multi-line code blocks. // of the indented syntax for multi-line code blocks.
export const message_content = get_or_set("compose-textarea", true); export const message_content = get_or_set("textarea#compose-textarea", true);
const untrimmed_message_content = get_or_set("compose-textarea", true, true); const untrimmed_message_content = get_or_set("textarea#compose-textarea", true, true);
function cursor_at_start_of_whitespace_in_compose() { function cursor_at_start_of_whitespace_in_compose() {
const cursor_position = $("#compose-textarea").caret(); const cursor_position = $("textarea#compose-textarea").caret();
return message_content() === "" && cursor_position === 0; return message_content() === "" && cursor_position === 0;
} }

View File

@@ -5,7 +5,7 @@ import $ from "jquery";
let saved_compose_cursor = 0; let saved_compose_cursor = 0;
function set_compose_textarea_handlers(): void { function set_compose_textarea_handlers(): void {
$("#compose-textarea").on("blur", function () { $("textarea#compose-textarea").on("blur", function () {
saved_compose_cursor = $(this).caret(); saved_compose_cursor = $(this).caret();
}); });
@@ -17,7 +17,7 @@ function set_compose_textarea_handlers(): void {
} }
export function restore_compose_cursor(): void { export function restore_compose_cursor(): void {
$("#compose-textarea").trigger("focus").caret(saved_compose_cursor); $("textarea#compose-textarea").trigger("focus").caret(saved_compose_cursor);
} }
export function initialize(): void { export function initialize(): void {

View File

@@ -47,15 +47,15 @@ function get_focus_area(msg_type, opts) {
// Set focus to "Topic" when narrowed to a stream+topic // Set focus to "Topic" when narrowed to a stream+topic
// and "Start new conversation" button clicked. // and "Start new conversation" button clicked.
if (msg_type === "stream" && opts.stream_id && !opts.topic) { if (msg_type === "stream" && opts.stream_id && !opts.topic) {
return "#stream_message_recipient_topic"; return "input#stream_message_recipient_topic";
} else if ( } else if (
(msg_type === "stream" && opts.stream_id) || (msg_type === "stream" && opts.stream_id) ||
(msg_type === "private" && opts.private_message_recipient) (msg_type === "private" && opts.private_message_recipient)
) { ) {
if (opts.trigger === "clear topic button") { if (opts.trigger === "clear topic button") {
return "#stream_message_recipient_topic"; return "input#stream_message_recipient_topic";
} }
return "#compose-textarea"; return "textarea#compose-textarea";
} }
if (msg_type === "stream") { if (msg_type === "stream") {
@@ -159,7 +159,7 @@ export function smart_insert_block($textarea, syntax, padding_newlines = 2) {
export function insert_syntax_and_focus( export function insert_syntax_and_focus(
syntax, syntax,
$textarea = $("#compose-textarea"), $textarea = $("textarea#compose-textarea"),
mode = "inline", mode = "inline",
padding_newlines, padding_newlines,
) { ) {
@@ -184,7 +184,7 @@ export function insert_syntax_and_focus(
} }
} }
export function replace_syntax(old_syntax, new_syntax, $textarea = $("#compose-textarea")) { export function replace_syntax(old_syntax, new_syntax, $textarea = $("textarea#compose-textarea")) {
// The following couple lines are needed to later restore the initial // The following couple lines are needed to later restore the initial
// logical position of the cursor after the replacement // logical position of the cursor after the replacement
const prev_caret = $textarea.caret(); const prev_caret = $textarea.caret();
@@ -294,7 +294,7 @@ export function make_compose_box_full_size() {
// The autosize should be destroyed for the full size compose // The autosize should be destroyed for the full size compose
// box else it will interfere and shrink its size accordingly. // box else it will interfere and shrink its size accordingly.
autosize.destroy($("#compose-textarea")); autosize.destroy($("textarea#compose-textarea"));
$("#compose").addClass("compose-fullscreen"); $("#compose").addClass("compose-fullscreen");
@@ -304,7 +304,7 @@ export function make_compose_box_full_size() {
$(".collapse_composebox_button").show(); $(".collapse_composebox_button").show();
$(".expand_composebox_button").hide(); $(".expand_composebox_button").hide();
$("#scroll-to-bottom-button-container").removeClass("show"); $("#scroll-to-bottom-button-container").removeClass("show");
$("#compose-textarea").trigger("focus"); $("textarea#compose-textarea").trigger("focus");
} }
export function make_compose_box_original_size() { export function make_compose_box_original_size() {
@@ -317,11 +317,11 @@ export function make_compose_box_original_size() {
// Again initialise the compose textarea as it was destroyed // Again initialise the compose textarea as it was destroyed
// when compose box was made full screen // when compose box was made full screen
autosize($("#compose-textarea")); autosize($("textarea#compose-textarea"));
$(".collapse_composebox_button").hide(); $(".collapse_composebox_button").hide();
$(".expand_composebox_button").show(); $(".expand_composebox_button").show();
$("#compose-textarea").trigger("focus"); $("textarea#compose-textarea").trigger("focus");
} }
export function handle_keydown(event, $textarea) { export function handle_keydown(event, $textarea) {

View File

@@ -500,7 +500,7 @@ function validate_stream_message(scheduling_message) {
$t({defaultMessage: "Topics are required in this organization."}), $t({defaultMessage: "Topics are required in this organization."}),
compose_banner.CLASSNAMES.topic_missing, compose_banner.CLASSNAMES.topic_missing,
$banner_container, $banner_container,
$("#stream_message_recipient_topic"), $("input#stream_message_recipient_topic"),
); );
return false; return false;
} }
@@ -623,7 +623,7 @@ export function check_overflow_text() {
if (text.length > max_length) { if (text.length > max_length) {
$indicator.addClass("over_limit"); $indicator.addClass("over_limit");
$("#compose-textarea").addClass("over_limit"); $("textarea#compose-textarea").addClass("over_limit");
$indicator.text(text.length + "/" + max_length); $indicator.text(text.length + "/" + max_length);
compose_banner.show_error_message( compose_banner.show_error_message(
$t( $t(
@@ -639,14 +639,14 @@ export function check_overflow_text() {
$("#compose-send-button").prop("disabled", true); $("#compose-send-button").prop("disabled", true);
} else if (text.length > 0.9 * max_length) { } else if (text.length > 0.9 * max_length) {
$indicator.removeClass("over_limit"); $indicator.removeClass("over_limit");
$("#compose-textarea").removeClass("over_limit"); $("textarea#compose-textarea").removeClass("over_limit");
$indicator.text(text.length + "/" + max_length); $indicator.text(text.length + "/" + max_length);
$("#compose-send-button").prop("disabled", false); $("#compose-send-button").prop("disabled", false);
$(`#compose_banners .${CSS.escape(compose_banner.CLASSNAMES.message_too_long)}`).remove(); $(`#compose_banners .${CSS.escape(compose_banner.CLASSNAMES.message_too_long)}`).remove();
} else { } else {
$indicator.text(""); $indicator.text("");
$("#compose-textarea").removeClass("over_limit"); $("textarea#compose-textarea").removeClass("over_limit");
$("#compose-send-button").prop("disabled", false); $("#compose-send-button").prop("disabled", false);
$(`#compose_banners .${CSS.escape(compose_banner.CLASSNAMES.message_too_long)}`).remove(); $(`#compose_banners .${CSS.escape(compose_banner.CLASSNAMES.message_too_long)}`).remove();
@@ -657,8 +657,8 @@ export function check_overflow_text() {
export function validate_message_length() { export function validate_message_length() {
if (compose_state.message_content().length > page_params.max_message_length) { if (compose_state.message_content().length > page_params.max_message_length) {
$("#compose-textarea").addClass("flash"); $("textarea#compose-textarea").addClass("flash");
setTimeout(() => $("#compose-textarea").removeClass("flash"), 1500); setTimeout(() => $("textarea#compose-textarea").removeClass("flash"), 1500);
return false; return false;
} }
return true; return true;
@@ -667,7 +667,7 @@ export function validate_message_length() {
export function validate(scheduling_message) { export function validate(scheduling_message) {
const message_content = compose_state.message_content(); const message_content = compose_state.message_content();
if (/^\s*$/.test(message_content)) { if (/^\s*$/.test(message_content)) {
$("#compose-textarea").toggleClass("invalid", true); $("textarea#compose-textarea").toggleClass("invalid", true);
return false; return false;
} }

View File

@@ -241,7 +241,7 @@ function handle_keydown(e, {on_enter_send}) {
target_sel = `#${CSS.escape(e.target.id)}`; target_sel = `#${CSS.escape(e.target.id)}`;
} }
const on_topic = target_sel === "#stream_message_recipient_topic"; const on_topic = target_sel === "input#stream_message_recipient_topic";
const on_pm = target_sel === "#private_message_recipient"; const on_pm = target_sel === "#private_message_recipient";
const on_compose = target_sel === "#compose-textarea"; const on_compose = target_sel === "#compose-textarea";
@@ -276,11 +276,11 @@ function handle_keydown(e, {on_enter_send}) {
return; return;
} }
handle_enter($("#compose-textarea"), e); handle_enter($("textarea#compose-textarea"), e);
} }
} else if (on_topic || on_pm) { } else if (on_topic || on_pm) {
// We are doing the focusing on keyup to not abort the typeahead. // We are doing the focusing on keyup to not abort the typeahead.
$nextFocus = $("#compose-textarea"); $nextFocus = $("textarea#compose-textarea");
} }
} }
} }
@@ -1133,7 +1133,7 @@ export function initialize({on_enter_send}) {
$("form#send_message_form").on("keydown", (e) => handle_keydown(e, {on_enter_send})); $("form#send_message_form").on("keydown", (e) => handle_keydown(e, {on_enter_send}));
$("form#send_message_form").on("keyup", handle_keyup); $("form#send_message_form").on("keyup", handle_keyup);
$("#stream_message_recipient_topic").typeahead({ $("input#stream_message_recipient_topic").typeahead({
source() { source() {
return topics_seen_for(compose_state.stream_id()); return topics_seen_for(compose_state.stream_id());
}, },
@@ -1195,7 +1195,7 @@ export function initialize({on_enter_send}) {
stopAdvance: true, // Do not advance to the next field on a Tab or Enter stopAdvance: true, // Do not advance to the next field on a Tab or Enter
}); });
initialize_compose_typeahead("#compose-textarea"); initialize_compose_typeahead("textarea#compose-textarea");
$("#private_message_recipient").on("blur", function () { $("#private_message_recipient").on("blur", function () {
const val = $(this).val(); const val = $(this).val();

View File

@@ -535,6 +535,6 @@ export function paste_handler(event) {
} }
export function initialize() { export function initialize() {
$("#compose-textarea").on("paste", paste_handler); $("textarea#compose-textarea").on("paste", paste_handler);
$("body").on("paste", ".message_edit_content", paste_handler); $("body").on("paste", ".message_edit_content", paste_handler);
} }

View File

@@ -250,7 +250,7 @@ export function update_draft(opts = {}) {
return undefined; return undefined;
} }
const draft_id = $("#compose-textarea").data("draft-id"); const draft_id = $("textarea#compose-textarea").data("draft-id");
if (draft_id !== undefined) { if (draft_id !== undefined) {
// We don't save multiple drafts of the same message; // We don't save multiple drafts of the same message;
@@ -265,7 +265,7 @@ export function update_draft(opts = {}) {
// We have never saved a draft for this message, so add one. // We have never saved a draft for this message, so add one.
const update_count = opts.update_count === undefined ? true : opts.update_count; const update_count = opts.update_count === undefined ? true : opts.update_count;
const new_draft_id = draft_model.addDraft(draft, update_count); const new_draft_id = draft_model.addDraft(draft, update_count);
$("#compose-textarea").data("draft-id", new_draft_id); $("textarea#compose-textarea").data("draft-id", new_draft_id);
maybe_notify(no_notify); maybe_notify(no_notify);
return new_draft_id; return new_draft_id;

View File

@@ -94,7 +94,7 @@ async function renderGIPHYGrid(targetEl) {
// GIF; nice in principle but too distracting. // GIF; nice in principle but too distracting.
hideAttribution: true, hideAttribution: true,
onGifClick(props) { onGifClick(props) {
let $textarea = $("#compose-textarea"); let $textarea = $("textarea#compose-textarea");
if (edit_message_id !== undefined) { if (edit_message_id !== undefined) {
$textarea = $( $textarea = $(
`#edit_form_${CSS.escape(edit_message_id)} .message_edit_content`, `#edit_form_${CSS.escape(edit_message_id)} .message_edit_content`,

View File

@@ -320,7 +320,7 @@ export function process_escape_key(e) {
// Check if the giphy popover was open using compose box. // Check if the giphy popover was open using compose box.
// Hide GIPHY popover if it's open. // Hide GIPHY popover if it's open.
if (!giphy.is_popped_from_edit_message() && giphy.hide_giphy_popover()) { if (!giphy.is_popped_from_edit_message() && giphy.hide_giphy_popover()) {
$("#compose-textarea").trigger("focus"); $("textarea#compose-textarea").trigger("focus");
return true; return true;
} }
@@ -620,7 +620,7 @@ export function process_shift_tab_key() {
return emoji_picker.navigate("shift_tab"); return emoji_picker.navigate("shift_tab");
} }
if ($("#stream_message_recipient_topic").is(":focus")) { if ($("input#stream_message_recipient_topic").is(":focus")) {
compose_recipient.open_compose_recipient_dropdown(); compose_recipient.open_compose_recipient_dropdown();
return true; return true;
} }

View File

@@ -1117,7 +1117,7 @@ export class MessageListView {
// the current compose is bigger than the empty, open // the current compose is bigger than the empty, open
// compose box. // compose box.
const compose_textarea_default_height = 42; const compose_textarea_default_height = 42;
const compose_textarea_current_height = $("#compose-textarea").height(); const compose_textarea_current_height = $("textarea#compose-textarea").height();
const expected_change = const expected_change =
compose_textarea_current_height - compose_textarea_default_height; compose_textarea_current_height - compose_textarea_default_height;
const expected_offset = offset - expected_change; const expected_offset = offset - expected_change;

View File

@@ -91,13 +91,13 @@ export function reset_compose_message_max_height(bottom_whitespace_height) {
const compose_height = $("#compose").get(0).getBoundingClientRect().height; const compose_height = $("#compose").get(0).getBoundingClientRect().height;
const compose_textarea_height = Math.max( const compose_textarea_height = Math.max(
$("#compose-textarea").get(0).getBoundingClientRect().height, $("textarea#compose-textarea").get(0).getBoundingClientRect().height,
$("#preview_message_area").get(0).getBoundingClientRect().height, $("#preview_message_area").get(0).getBoundingClientRect().height,
); );
const compose_non_textarea_height = compose_height - compose_textarea_height; const compose_non_textarea_height = compose_height - compose_textarea_height;
// We ensure that the last message is not overlapped by compose box. // We ensure that the last message is not overlapped by compose box.
$("#compose-textarea").css( $("textarea#compose-textarea").css(
"max-height", "max-height",
// Because <textarea> max-height includes padding, we subtract // Because <textarea> max-height includes padding, we subtract
// 10 for the padding and 10 for the selected message border. // 10 for the padding and 10 for the selected message border.

View File

@@ -28,7 +28,7 @@ export function handler() {
_old_width = new_width; _old_width = new_width;
} }
resize.resize_page_components(); resize.resize_page_components();
compose_ui.autosize_textarea($("#compose-textarea")); compose_ui.autosize_textarea($("textarea#compose-textarea"));
resize.update_recent_view_filters_height(); resize.update_recent_view_filters_height();
// Re-compute and display/remove 'Show more' buttons to messages // Re-compute and display/remove 'Show more' buttons to messages

View File

@@ -116,7 +116,7 @@ export function initialize() {
target: "#send_later i", target: "#send_later i",
onUntrigger() { onUntrigger() {
// This is only called when the popover is closed by clicking on `target`. // This is only called when the popover is closed by clicking on `target`.
$("#compose-textarea").trigger("focus"); $("textarea#compose-textarea").trigger("focus");
}, },
onShow(instance) { onShow(instance) {
const formatted_send_later_time = const formatted_send_later_time =

View File

@@ -37,7 +37,7 @@ export function get_item(key, config, file_id) {
if (config.mode === "compose") { if (config.mode === "compose") {
switch (key) { switch (key) {
case "textarea": case "textarea":
return $("#compose-textarea"); return $("textarea#compose-textarea");
case "send_button": case "send_button":
return $("#compose-send-button"); return $("#compose-send-button");
case "banner_container": case "banner_container":

View File

@@ -133,8 +133,8 @@ test_ui("send_message_success", ({override, override_rewire}) => {
mock_banners(); mock_banners();
function reset() { function reset() {
$("#compose-textarea").val("foobarfoobar"); $("textarea#compose-textarea").val("foobarfoobar");
$("#compose-textarea").trigger("blur"); $("textarea#compose-textarea").trigger("blur");
$(".compose-submit-button .loader").show(); $(".compose-submit-button .loader").show();
} }
@@ -165,8 +165,8 @@ test_ui("send_message_success", ({override, override_rewire}) => {
let data = {id: 12, automatic_new_visibility_policy: 2}; let data = {id: 12, automatic_new_visibility_policy: 2};
compose.send_message_success(request, data); compose.send_message_success(request, data);
assert.equal($("#compose-textarea").val(), ""); assert.equal($("textarea#compose-textarea").val(), "");
assert.ok($("#compose-textarea").is_focused()); assert.ok($("textarea#compose-textarea").is_focused());
assert.ok(!$(".compose-submit-button .loader").visible()); assert.ok(!$(".compose-submit-button .loader").visible());
assert.ok(reify_message_id_checked); assert.ok(reify_message_id_checked);
@@ -189,8 +189,8 @@ test_ui("send_message_success", ({override, override_rewire}) => {
data = {id: 12}; data = {id: 12};
compose.send_message_success(request, data); compose.send_message_success(request, data);
assert.equal($("#compose-textarea").val(), ""); assert.equal($("textarea#compose-textarea").val(), "");
assert.ok($("#compose-textarea").is_focused()); assert.ok($("textarea#compose-textarea").is_focused());
assert.ok(!$(".compose-submit-button .loader").visible()); assert.ok(!$(".compose-submit-button .loader").visible());
assert.ok(reify_message_id_checked); assert.ok(reify_message_id_checked);
}); });
@@ -266,8 +266,8 @@ test_ui("send_message", ({override, override_rewire, mock_template}) => {
stub_state.reify_message_id_checked += 1; stub_state.reify_message_id_checked += 1;
}); });
$("#compose-textarea").val("[foobar](/user_uploads/123456)"); $("textarea#compose-textarea").val("[foobar](/user_uploads/123456)");
$("#compose-textarea").trigger("blur"); $("textarea#compose-textarea").trigger("blur");
$(".compose-submit-button .loader").show(); $(".compose-submit-button .loader").show();
compose.send_message(); compose.send_message();
@@ -278,8 +278,8 @@ test_ui("send_message", ({override, override_rewire, mock_template}) => {
send_msg_called: 1, send_msg_called: 1,
}; };
assert.deepEqual(stub_state, state); assert.deepEqual(stub_state, state);
assert.equal($("#compose-textarea").val(), ""); assert.equal($("textarea#compose-textarea").val(), "");
assert.ok($("#compose-textarea").is_focused()); assert.ok($("textarea#compose-textarea").is_focused());
assert.ok(!$(".compose-submit-button .loader").visible()); assert.ok(!$(".compose-submit-button .loader").visible());
})(); })();
@@ -320,10 +320,10 @@ test_ui("send_message", ({override, override_rewire, mock_template}) => {
banner_rendered = true; banner_rendered = true;
}); });
stub_state = initialize_state_stub_dict(); stub_state = initialize_state_stub_dict();
$("#compose-textarea").val("foobarfoobar"); $("textarea#compose-textarea").val("foobarfoobar");
$("#compose-textarea").trigger("blur"); $("textarea#compose-textarea").trigger("blur");
$(".compose-submit-button .loader").show(); $(".compose-submit-button .loader").show();
$("#compose-textarea").off("select"); $("textarea#compose-textarea").off("select");
echo_error_msg_checked = false; echo_error_msg_checked = false;
override_rewire(echo, "try_deliver_locally", () => {}); override_rewire(echo, "try_deliver_locally", () => {});
@@ -339,15 +339,15 @@ test_ui("send_message", ({override, override_rewire, mock_template}) => {
assert.deepEqual(stub_state, state); assert.deepEqual(stub_state, state);
assert.ok(!echo_error_msg_checked); assert.ok(!echo_error_msg_checked);
assert.ok(banner_rendered); assert.ok(banner_rendered);
assert.equal($("#compose-textarea").val(), "foobarfoobar"); assert.equal($("textarea#compose-textarea").val(), "foobarfoobar");
assert.ok($("#compose-textarea").is_focused()); assert.ok($("textarea#compose-textarea").is_focused());
assert.ok(!$(".compose-submit-button .loader").visible()); assert.ok(!$(".compose-submit-button .loader").visible());
})(); })();
}); });
test_ui("enter_with_preview_open", ({override, override_rewire}) => { test_ui("enter_with_preview_open", ({override, override_rewire}) => {
mock_banners(); mock_banners();
$("#compose-textarea").toggleClass = noop; $("textarea#compose-textarea").toggleClass = noop;
mock_stream_header_colorblock(); mock_stream_header_colorblock();
override_rewire(compose_banner, "clear_message_sent_banners", () => {}); override_rewire(compose_banner, "clear_message_sent_banners", () => {});
override(document, "to_$", () => $("document-stub")); override(document, "to_$", () => $("document-stub"));
@@ -363,8 +363,8 @@ test_ui("enter_with_preview_open", ({override, override_rewire}) => {
compose_state.set_message_type("stream"); compose_state.set_message_type("stream");
compose_state.set_stream_id(social.stream_id); compose_state.set_stream_id(social.stream_id);
$("#compose-textarea").val("message me"); $("textarea#compose-textarea").val("message me");
$("#compose-textarea").hide(); $("textarea#compose-textarea").hide();
$("#compose .undo_markdown_preview").show(); $("#compose .undo_markdown_preview").show();
$("#compose .preview_message_area").show(); $("#compose .preview_message_area").show();
$("#compose .markdown_preview").hide(); $("#compose .markdown_preview").hide();
@@ -375,7 +375,7 @@ test_ui("enter_with_preview_open", ({override, override_rewire}) => {
send_message_called = true; send_message_called = true;
}); });
compose.enter_with_preview_open(); compose.enter_with_preview_open();
assert.ok($("#compose-textarea").visible()); assert.ok($("textarea#compose-textarea").visible());
assert.ok(!$("#compose .undo_markdown_preview").visible()); assert.ok(!$("#compose .undo_markdown_preview").visible());
assert.ok(!$("#compose .preview_message_area").visible()); assert.ok(!$("#compose .preview_message_area").visible());
assert.ok($("#compose .markdown_preview").visible()); assert.ok($("#compose .markdown_preview").visible());
@@ -384,12 +384,12 @@ test_ui("enter_with_preview_open", ({override, override_rewire}) => {
assert.ok(show_button_spinner_called); assert.ok(show_button_spinner_called);
user_settings.enter_sends = false; user_settings.enter_sends = false;
$("#compose-textarea").trigger("blur"); $("textarea#compose-textarea").trigger("blur");
compose.enter_with_preview_open(); compose.enter_with_preview_open();
assert.ok($("#compose-textarea").is_focused()); assert.ok($("textarea#compose-textarea").is_focused());
// Test sending a message without content. // Test sending a message without content.
$("#compose-textarea").val(""); $("textarea#compose-textarea").val("");
$("#compose .preview_message_area").show(); $("#compose .preview_message_area").show();
user_settings.enter_sends = true; user_settings.enter_sends = true;
@@ -409,7 +409,7 @@ test_ui("finish", ({override, override_rewire}) => {
}); });
(function test_when_compose_validation_fails() { (function test_when_compose_validation_fails() {
$("#compose-textarea").toggleClass = (classname, value) => { $("textarea#compose-textarea").toggleClass = (classname, value) => {
assert.equal(classname, "invalid"); assert.equal(classname, "invalid");
assert.equal(value, true); assert.equal(value, true);
}; };
@@ -417,8 +417,8 @@ test_ui("finish", ({override, override_rewire}) => {
$("#compose-send-button").prop("disabled", false); $("#compose-send-button").prop("disabled", false);
$("#compose-send-button").trigger("focus"); $("#compose-send-button").trigger("focus");
$(".compose-submit-button .loader").hide(); $(".compose-submit-button .loader").hide();
$("#compose-textarea").off("select"); $("textarea#compose-textarea").off("select");
$("#compose-textarea").val(""); $("textarea#compose-textarea").val("");
override_rewire(compose_ui, "compose_spinner_visible", false); override_rewire(compose_ui, "compose_spinner_visible", false);
const res = compose.finish(); const res = compose.finish();
assert.equal(res, false); assert.equal(res, false);
@@ -433,7 +433,7 @@ test_ui("finish", ({override, override_rewire}) => {
$("#compose .preview_message_area").show(); $("#compose .preview_message_area").show();
$("#compose .markdown_preview").hide(); $("#compose .markdown_preview").hide();
$("#compsoe").addClass("preview_mode"); $("#compsoe").addClass("preview_mode");
$("#compose-textarea").val("foobarfoobar"); $("textarea#compose-textarea").val("foobarfoobar");
override_rewire(compose_ui, "compose_spinner_visible", false); override_rewire(compose_ui, "compose_spinner_visible", false);
compose_state.set_message_type("private"); compose_state.set_message_type("private");
override(compose_pm_pill, "get_emails", () => "bob@example.com"); override(compose_pm_pill, "get_emails", () => "bob@example.com");
@@ -448,7 +448,7 @@ test_ui("finish", ({override, override_rewire}) => {
send_message_called = true; send_message_called = true;
}); });
assert.ok(compose.finish()); assert.ok(compose.finish());
assert.ok($("#compose-textarea").visible()); assert.ok($("textarea#compose-textarea").visible());
assert.ok(!$("#compose .undo_markdown_preview").visible()); assert.ok(!$("#compose .undo_markdown_preview").visible());
assert.ok(!$("#compose .preview_message_area").visible()); assert.ok(!$("#compose .preview_message_area").visible());
assert.ok($("#compose .markdown_preview").visible()); assert.ok($("#compose .markdown_preview").visible());
@@ -617,7 +617,7 @@ test_ui("on_events", ({override, override_rewire}) => {
(function test_markdown_preview_compose_clicked() { (function test_markdown_preview_compose_clicked() {
// Tests setup // Tests setup
function setup_visibilities() { function setup_visibilities() {
$("#compose-textarea").show(); $("textarea#compose-textarea").show();
$("#compose .markdown_preview").show(); $("#compose .markdown_preview").show();
$("#compose .undo_markdown_preview").hide(); $("#compose .undo_markdown_preview").hide();
$("#compose .preview_message_area").hide(); $("#compose .preview_message_area").hide();
@@ -625,7 +625,7 @@ test_ui("on_events", ({override, override_rewire}) => {
} }
function assert_visibilities() { function assert_visibilities() {
assert.ok(!$("#compose-textarea").visible()); assert.ok(!$("textarea#compose-textarea").visible());
assert.ok(!$("#compose .markdown_preview").visible()); assert.ok(!$("#compose .markdown_preview").visible());
assert.ok($("#compose .undo_markdown_preview").visible()); assert.ok($("#compose .undo_markdown_preview").visible());
assert.ok($("#compose .preview_message_area").visible()); assert.ok($("#compose .preview_message_area").visible());
@@ -689,7 +689,7 @@ test_ui("on_events", ({override, override_rewire}) => {
const handler = $("#compose").get_on_handler("click", ".markdown_preview"); const handler = $("#compose").get_on_handler("click", ".markdown_preview");
// Tests start here // Tests start here
$("#compose-textarea").val(""); $("textarea#compose-textarea").val("");
setup_visibilities(); setup_visibilities();
const event = { const event = {
@@ -703,7 +703,7 @@ test_ui("on_events", ({override, override_rewire}) => {
assert_visibilities(); assert_visibilities();
let make_indicator_called = false; let make_indicator_called = false;
$("#compose-textarea").val("```foobarfoobar```"); $("textarea#compose-textarea").val("```foobarfoobar```");
setup_visibilities(); setup_visibilities();
setup_mock_markdown_contains_backend_only_syntax("```foobarfoobar```", true); setup_mock_markdown_contains_backend_only_syntax("```foobarfoobar```", true);
setup_mock_markdown_is_status_message("```foobarfoobar```", false); setup_mock_markdown_is_status_message("```foobarfoobar```", false);
@@ -721,7 +721,7 @@ test_ui("on_events", ({override, override_rewire}) => {
assert_visibilities(); assert_visibilities();
let apply_markdown_called = false; let apply_markdown_called = false;
$("#compose-textarea").val("foobarfoobar"); $("textarea#compose-textarea").val("foobarfoobar");
setup_visibilities(); setup_visibilities();
setup_mock_markdown_contains_backend_only_syntax("foobarfoobar", false); setup_mock_markdown_contains_backend_only_syntax("foobarfoobar", false);
setup_mock_markdown_is_status_message("foobarfoobar", false); setup_mock_markdown_is_status_message("foobarfoobar", false);
@@ -744,7 +744,7 @@ test_ui("on_events", ({override, override_rewire}) => {
(function test_undo_markdown_preview_clicked() { (function test_undo_markdown_preview_clicked() {
const handler = $("#compose").get_on_handler("click", ".undo_markdown_preview"); const handler = $("#compose").get_on_handler("click", ".undo_markdown_preview");
$("#compose-textarea").hide(); $("textarea#compose-textarea").hide();
$("#compose .undo_markdown_preview").show(); $("#compose .undo_markdown_preview").show();
$("#compose .preview_message_area").show(); $("#compose .preview_message_area").show();
$("#compose .markdown_preview").hide(); $("#compose .markdown_preview").hide();
@@ -759,7 +759,7 @@ test_ui("on_events", ({override, override_rewire}) => {
handler(event); handler(event);
assert.ok($("#compose-textarea").visible()); assert.ok($("textarea#compose-textarea").visible());
assert.ok(!$("#compose .undo_markdown_preview").visible()); assert.ok(!$("#compose .undo_markdown_preview").visible());
assert.ok(!$("#compose .preview_message_area").visible()); assert.ok(!$("#compose .preview_message_area").visible());
assert.ok($("#compose .markdown_preview").visible()); assert.ok($("#compose .markdown_preview").visible());
@@ -772,8 +772,8 @@ test_ui("create_message_object", ({override, override_rewire}) => {
mock_banners(); mock_banners();
compose_state.set_stream_id(social.stream_id); compose_state.set_stream_id(social.stream_id);
$("#stream_message_recipient_topic").val("lunch"); $("input#stream_message_recipient_topic").val("lunch");
$("#compose-textarea").val("burrito"); $("textarea#compose-textarea").val("burrito");
compose_state.set_message_type("stream"); compose_state.set_message_type("stream");

View File

@@ -199,11 +199,11 @@ test("start", ({override, override_rewire, mock_template}) => {
start("private", opts); start("private", opts);
assert_hidden("#stream_message_recipient_topic"); assert_hidden("input#stream_message_recipient_topic");
assert_visible("#compose-direct-recipient"); assert_visible("#compose-direct-recipient");
assert.equal(compose_state.private_message_recipient(), "foo@example.com"); assert.equal(compose_state.private_message_recipient(), "foo@example.com");
assert.equal($("#compose-textarea").val(), "hello"); assert.equal($("textarea#compose-textarea").val(), "hello");
assert.equal(compose_state.get_message_type(), "private"); assert.equal(compose_state.get_message_type(), "private");
assert.ok(compose_state.composing()); assert.ok(compose_state.composing());
@@ -230,7 +230,7 @@ test("start", ({override, override_rewire, mock_template}) => {
}); });
compose_actions.register_compose_cancel_hook(compose_setup.abort_xhr); compose_actions.register_compose_cancel_hook(compose_setup.abort_xhr);
$("#compose-textarea").set_height(50); $("textarea#compose-textarea").set_height(50);
assert_hidden("#compose_controls"); assert_hidden("#compose_controls");
cancel(); cancel();
@@ -411,7 +411,7 @@ test("quote_and_reply", ({disallow, override, override_rewire}) => {
reply_type: "personal", reply_type: "personal",
}; };
$("#compose-textarea").caret = noop; $("textarea#compose-textarea").caret = noop;
replaced = false; replaced = false;
expected_replacement = expected_replacement =
@@ -457,16 +457,16 @@ test("quote_and_reply", ({disallow, override, override_rewire}) => {
test("focus_in_empty_compose", () => { test("focus_in_empty_compose", () => {
document.activeElement = {id: "compose-textarea"}; document.activeElement = {id: "compose-textarea"};
compose_state.set_message_type("stream"); compose_state.set_message_type("stream");
$("#compose-textarea").val(""); $("textarea#compose-textarea").val("");
assert.ok(compose_state.focus_in_empty_compose()); assert.ok(compose_state.focus_in_empty_compose());
compose_state.set_message_type(false); compose_state.set_message_type(false);
assert.ok(!compose_state.focus_in_empty_compose()); assert.ok(!compose_state.focus_in_empty_compose());
$("#compose-textarea").val("foo"); $("textarea#compose-textarea").val("foo");
assert.ok(!compose_state.focus_in_empty_compose()); assert.ok(!compose_state.focus_in_empty_compose());
$("#compose-textarea").trigger("blur"); $("textarea#compose-textarea").trigger("blur");
assert.ok(!compose_state.focus_in_empty_compose()); assert.ok(!compose_state.focus_in_empty_compose());
}); });

View File

@@ -7,7 +7,7 @@ const {run_test} = require("./lib/test");
mock_jquery((selector) => { mock_jquery((selector) => {
switch (selector) { switch (selector) {
case "#stream_message_recipient_topic": case "input#stream_message_recipient_topic":
return { return {
val() { val() {
return "lunch"; return "lunch";

View File

@@ -102,9 +102,9 @@ run_test("autosize_textarea", ({override}) => {
}); });
run_test("insert_syntax_and_focus", ({override}) => { run_test("insert_syntax_and_focus", ({override}) => {
$("#compose-textarea").val("xyz "); $("textarea#compose-textarea").val("xyz ");
$("#compose-textarea").caret = () => 4; $("textarea#compose-textarea").caret = () => 4;
$("#compose-textarea")[0] = "compose-textarea"; $("textarea#compose-textarea")[0] = "compose-textarea";
// Since we are using a third party library, we just // Since we are using a third party library, we just
// need to ensure it is being called with the right params. // need to ensure it is being called with the right params.
override(text_field_edit, "insert", (elt, syntax) => { override(text_field_edit, "insert", (elt, syntax) => {
@@ -298,11 +298,11 @@ run_test("quote_and_reply", ({override, override_rewire}) => {
let textarea_val = ""; let textarea_val = "";
let textarea_caret_pos; let textarea_caret_pos;
$("#compose-textarea").val = function () { $("textarea#compose-textarea").val = function () {
return textarea_val; return textarea_val;
}; };
$("#compose-textarea").caret = function (arg) { $("textarea#compose-textarea").caret = function (arg) {
if (arg === undefined) { if (arg === undefined) {
return textarea_caret_pos; return textarea_caret_pos;
} }
@@ -328,7 +328,7 @@ run_test("quote_and_reply", ({override, override_rewire}) => {
return this; return this;
} }
}; };
$("#compose-textarea")[0] = "compose-textarea"; $("textarea#compose-textarea")[0] = "compose-textarea";
override(text_field_edit, "insert", (elt, syntax) => { override(text_field_edit, "insert", (elt, syntax) => {
assert.equal(elt, "compose-textarea"); assert.equal(elt, "compose-textarea");
assert.equal(syntax, "\n\ntranslated: [Quoting…]\n\n"); assert.equal(syntax, "\n\ntranslated: [Quoting…]\n\n");
@@ -339,7 +339,7 @@ run_test("quote_and_reply", ({override, override_rewire}) => {
content = content.slice(0, caret_position) + content.slice(caret_position + 1); // remove the "%" content = content.slice(0, caret_position) + content.slice(caret_position + 1); // remove the "%"
textarea_val = content; textarea_val = content;
textarea_caret_pos = caret_position; textarea_caret_pos = caret_position;
$("#compose-textarea").trigger("focus"); $("textarea#compose-textarea").trigger("focus");
} }
function reset_test_state() { function reset_test_state() {
@@ -349,7 +349,7 @@ run_test("quote_and_reply", ({override, override_rewire}) => {
// Reset compose-box state. // Reset compose-box state.
textarea_val = ""; textarea_val = "";
textarea_caret_pos = 0; textarea_caret_pos = 0;
$("#compose-textarea").trigger("blur"); $("textarea#compose-textarea").trigger("blur");
} }
function override_with_quote_text(quote_text) { function override_with_quote_text(quote_text) {
@@ -395,7 +395,7 @@ run_test("quote_and_reply", ({override, override_rewire}) => {
// Reset compose state to replicate the re-opening of compose-box. // Reset compose state to replicate the re-opening of compose-box.
textarea_val = ""; textarea_val = "";
textarea_caret_pos = 0; textarea_caret_pos = 0;
$("#compose-textarea").trigger("focus"); $("textarea#compose-textarea").trigger("focus");
}); });
reset_test_state(); reset_test_state();
@@ -511,7 +511,7 @@ function reset_state() {
wrap_syntax_end = ""; wrap_syntax_end = "";
} }
const $textarea = $("#compose-textarea"); const $textarea = $("textarea#compose-textarea");
$textarea.get = () => ({ $textarea.get = () => ({
setSelectionRange(start, end) { setSelectionRange(start, end) {
$textarea.range = () => ({ $textarea.range = () => ({
@@ -787,7 +787,7 @@ run_test("markdown_shortcuts", ({override_rewire}) => {
event.key = "b"; event.key = "b";
event.ctrlKey = isCtrl; event.ctrlKey = isCtrl;
event.metaKey = isCmd; event.metaKey = isCmd;
compose_ui.handle_keydown(event, $("#compose-textarea")); compose_ui.handle_keydown(event, $("textarea#compose-textarea"));
assert.equal(format_text_type, "bold"); assert.equal(format_text_type, "bold");
format_text_type = undefined; format_text_type = undefined;
@@ -797,7 +797,7 @@ run_test("markdown_shortcuts", ({override_rewire}) => {
// We use event.key = "I" to emulate user using Caps Lock key. // We use event.key = "I" to emulate user using Caps Lock key.
event.key = "I"; event.key = "I";
event.shiftKey = false; event.shiftKey = false;
compose_ui.handle_keydown(event, $("#compose-textarea")); compose_ui.handle_keydown(event, $("textarea#compose-textarea"));
assert.equal(format_text_type, "italic"); assert.equal(format_text_type, "italic");
format_text_type = undefined; format_text_type = undefined;
@@ -806,7 +806,7 @@ run_test("markdown_shortcuts", ({override_rewire}) => {
// Windows/Linux = Ctrl+Shift+L // Windows/Linux = Ctrl+Shift+L
event.key = "l"; event.key = "l";
event.shiftKey = true; event.shiftKey = true;
compose_ui.handle_keydown(event, $("#compose-textarea")); compose_ui.handle_keydown(event, $("textarea#compose-textarea"));
assert.equal(format_text_type, "link"); assert.equal(format_text_type, "link");
format_text_type = undefined; format_text_type = undefined;
} }
@@ -820,17 +820,17 @@ run_test("markdown_shortcuts", ({override_rewire}) => {
event.metaKey = isCmd; event.metaKey = isCmd;
event.key = "b"; event.key = "b";
compose_ui.handle_keydown(event, $("#compose-textarea")); compose_ui.handle_keydown(event, $("textarea#compose-textarea"));
assert.equal(format_text_type, undefined); assert.equal(format_text_type, undefined);
event.key = "i"; event.key = "i";
event.shiftKey = false; event.shiftKey = false;
compose_ui.handle_keydown(event, $("#compose-textarea")); compose_ui.handle_keydown(event, $("textarea#compose-textarea"));
assert.equal(format_text_type, undefined); assert.equal(format_text_type, undefined);
event.key = "l"; event.key = "l";
event.shiftKey = true; event.shiftKey = true;
compose_ui.handle_keydown(event, $("#compose-textarea")); compose_ui.handle_keydown(event, $("textarea#compose-textarea"));
assert.equal(format_text_type, undefined); assert.equal(format_text_type, undefined);
} }
@@ -859,7 +859,7 @@ run_test("markdown_shortcuts", ({override_rewire}) => {
}); });
run_test("right-to-left", () => { run_test("right-to-left", () => {
const $textarea = $("#compose-textarea"); const $textarea = $("textarea#compose-textarea");
const event = { const event = {
key: "A", key: "A",
@@ -868,7 +868,7 @@ run_test("right-to-left", () => {
assert.equal($textarea.hasClass("rtl"), false); assert.equal($textarea.hasClass("rtl"), false);
$textarea.val("```quote\nمرحبا"); $textarea.val("```quote\nمرحبا");
compose_ui.handle_keyup(event, $("#compose-textarea")); compose_ui.handle_keyup(event, $("textarea#compose-textarea"));
assert.equal($textarea.hasClass("rtl"), true); assert.equal($textarea.hasClass("rtl"), true);
@@ -885,16 +885,16 @@ run_test("get_focus_area", () => {
get_focus_area("private", { get_focus_area("private", {
private_message_recipient: "bob@example.com", private_message_recipient: "bob@example.com",
}), }),
"#compose-textarea", "textarea#compose-textarea",
); );
assert.equal(get_focus_area("stream", {}), "#compose_select_recipient_widget_wrapper"); assert.equal(get_focus_area("stream", {}), "#compose_select_recipient_widget_wrapper");
assert.equal( assert.equal(
get_focus_area("stream", {stream_name: "fun", stream_id: 4}), get_focus_area("stream", {stream_name: "fun", stream_id: 4}),
"#stream_message_recipient_topic", "input#stream_message_recipient_topic",
); );
assert.equal( assert.equal(
get_focus_area("stream", {stream_name: "fun", stream_id: 4, topic: "more"}), get_focus_area("stream", {stream_name: "fun", stream_id: 4, topic: "more"}),
"#compose-textarea", "textarea#compose-textarea",
); );
assert.equal( assert.equal(
get_focus_area("stream", { get_focus_area("stream", {
@@ -902,6 +902,6 @@ run_test("get_focus_area", () => {
topic: "more", topic: "more",
trigger: "clear topic button", trigger: "clear topic button",
}), }),
"#stream_message_recipient_topic", "input#stream_message_recipient_topic",
); );
}); });

View File

@@ -68,7 +68,7 @@ people.add_cross_realm_user(welcome_bot);
function test_ui(label, f) { function test_ui(label, f) {
// The sloppy_$ flag lets us reuse setup from prior tests. // The sloppy_$ flag lets us reuse setup from prior tests.
run_test(label, (helpers) => { run_test(label, (helpers) => {
$("#compose-textarea").val("some message"); $("textarea#compose-textarea").val("some message");
f(helpers); f(helpers);
}); });
} }
@@ -178,7 +178,7 @@ test_ui("validate", ({mock_template}) => {
} }
function add_content_to_compose_box() { function add_content_to_compose_box() {
$("#compose-textarea").val("foobarfoobar"); $("textarea#compose-textarea").val("foobarfoobar");
} }
// test validating direct messages // test validating direct messages
@@ -243,7 +243,7 @@ test_ui("validate", ({mock_template}) => {
}); });
initialize_pm_pill(); initialize_pm_pill();
compose_state.private_message_recipient("welcome-bot@example.com"); compose_state.private_message_recipient("welcome-bot@example.com");
$("#compose-textarea").toggleClass = (classname, value) => { $("textarea#compose-textarea").toggleClass = (classname, value) => {
assert.equal(classname, "invalid"); assert.equal(classname, "invalid");
assert.equal(value, true); assert.equal(value, true);
}; };
@@ -546,7 +546,7 @@ test_ui("test_check_overflow_text", ({mock_template}) => {
mock_banners(); mock_banners();
page_params.max_message_length = 10000; page_params.max_message_length = 10000;
const $textarea = $("#compose-textarea"); const $textarea = $("textarea#compose-textarea");
const $indicator = $("#compose_limit_indicator"); const $indicator = $("#compose_limit_indicator");
const $send_button = $("#compose-send-button"); const $send_button = $("#compose-send-button");
let banner_rendered = false; let banner_rendered = false;

View File

@@ -86,7 +86,7 @@ test("videos", ({override}) => {
}; };
const handler = $("body").get_on_handler("click", ".video_link"); const handler = $("body").get_on_handler("click", ".video_link");
$("#compose-textarea").val(""); $("textarea#compose-textarea").val("");
with_overrides(({disallow}) => { with_overrides(({disallow}) => {
disallow(compose_ui, "insert_syntax_and_focus"); disallow(compose_ui, "insert_syntax_and_focus");
@@ -115,7 +115,7 @@ test("videos", ({override}) => {
}); });
const handler = $("body").get_on_handler("click", ".video_link"); const handler = $("body").get_on_handler("click", ".video_link");
$("#compose-textarea").val(""); $("textarea#compose-textarea").val("");
page_params.realm_video_chat_provider = realm_available_video_chat_providers.jitsi_meet.id; page_params.realm_video_chat_provider = realm_available_video_chat_providers.jitsi_meet.id;
@@ -187,14 +187,14 @@ test("videos", ({override}) => {
return {abort() {}}; return {abort() {}};
}; };
$("#compose-textarea").val(""); $("textarea#compose-textarea").val("");
const video_handler = $("body").get_on_handler("click", ".video_link"); const video_handler = $("body").get_on_handler("click", ".video_link");
video_handler(ev); video_handler(ev);
const video_link_regex = /\[translated: Join video call\.]\(example\.zoom\.com\)/; const video_link_regex = /\[translated: Join video call\.]\(example\.zoom\.com\)/;
assert.ok(called); assert.ok(called);
assert.match(syntax_to_insert, video_link_regex); assert.match(syntax_to_insert, video_link_regex);
$("#compose-textarea").val(""); $("textarea#compose-textarea").val("");
const audio_handler = $("body").get_on_handler("click", ".audio_link"); const audio_handler = $("body").get_on_handler("click", ".audio_link");
audio_handler(ev); audio_handler(ev);
const audio_link_regex = /\[translated: Join voice call\.]\(example\.zoom\.com\)/; const audio_link_regex = /\[translated: Join voice call\.]\(example\.zoom\.com\)/;
@@ -223,7 +223,7 @@ test("videos", ({override}) => {
}); });
const handler = $("body").get_on_handler("click", ".video_link"); const handler = $("body").get_on_handler("click", ".video_link");
$("#compose-textarea").val(""); $("textarea#compose-textarea").val("");
page_params.realm_video_chat_provider = page_params.realm_video_chat_provider =
realm_available_video_chat_providers.big_blue_button.id; realm_available_video_chat_providers.big_blue_button.id;

View File

@@ -741,7 +741,7 @@ test("initialize", ({override, override_rewire, mock_template}) => {
override(stream_topic_history_util, "get_server_history", () => {}); override(stream_topic_history_util, "get_server_history", () => {});
let topic_typeahead_called = false; let topic_typeahead_called = false;
$("#stream_message_recipient_topic").typeahead = (options) => { $("input#stream_message_recipient_topic").typeahead = (options) => {
override_rewire(stream_topic_history, "get_recent_topic_names", (stream_id) => { override_rewire(stream_topic_history, "get_recent_topic_names", (stream_id) => {
assert.equal(stream_id, sweden_stream.stream_id); assert.equal(stream_id, sweden_stream.stream_id);
return sweden_topics_to_show; return sweden_topics_to_show;
@@ -962,7 +962,7 @@ test("initialize", ({override, override_rewire, mock_template}) => {
}; };
let compose_textarea_typeahead_called = false; let compose_textarea_typeahead_called = false;
$("#compose-textarea").typeahead = (options) => { $("textarea#compose-textarea").typeahead = (options) => {
// options.source() // options.source()
// //
// For now we only test that get_sorted_filtered_items has been // For now we only test that get_sorted_filtered_items has been
@@ -1159,14 +1159,14 @@ test("initialize", ({override, override_rewire, mock_template}) => {
event.target.id = "some_non_existing_id"; event.target.id = "some_non_existing_id";
$("form#send_message_form").trigger(event); $("form#send_message_form").trigger(event);
$("#compose-textarea")[0] = { $("textarea#compose-textarea")[0] = {
selectionStart: 0, selectionStart: 0,
selectionEnd: 0, selectionEnd: 0,
}; };
override(compose_ui, "insert_and_scroll_into_view", (content, _textarea) => { override(compose_ui, "insert_and_scroll_into_view", (content, _textarea) => {
assert.equal(content, "\n"); assert.equal(content, "\n");
}); });
$("#compose-textarea").caret = () => $("#compose-textarea")[0].selectionStart; $("textarea#compose-textarea").caret = () => $("textarea#compose-textarea")[0].selectionStart;
event.key = "Enter"; event.key = "Enter";
event.target.id = "stream_message_recipient_topic"; event.target.id = "stream_message_recipient_topic";
@@ -1188,19 +1188,19 @@ test("initialize", ({override, override_rewire, mock_template}) => {
// Cover cases where there's at least one character there. // Cover cases where there's at least one character there.
// Test automatic bulleting. // Test automatic bulleting.
$("#compose-textarea").val("- List item 1\n- List item 2"); $("textarea#compose-textarea").val("- List item 1\n- List item 2");
$("#compose-textarea")[0].selectionStart = 27; $("textarea#compose-textarea")[0].selectionStart = 27;
$("#compose-textarea")[0].selectionEnd = 27; $("textarea#compose-textarea")[0].selectionEnd = 27;
override(compose_ui, "insert_and_scroll_into_view", (content, _textarea) => { override(compose_ui, "insert_and_scroll_into_view", (content, _textarea) => {
assert.equal(content, "\n- "); assert.equal(content, "\n- ");
}); });
$("form#send_message_form").trigger(event); $("form#send_message_form").trigger(event);
// Test removal of bullet. // Test removal of bullet.
$("#compose-textarea").val("- List item 1\n- List item 2\n- "); $("textarea#compose-textarea").val("- List item 1\n- List item 2\n- ");
$("#compose-textarea")[0].selectionStart = 30; $("textarea#compose-textarea")[0].selectionStart = 30;
$("#compose-textarea")[0].selectionEnd = 30; $("textarea#compose-textarea")[0].selectionEnd = 30;
$("#compose-textarea")[0].setSelectionRange = (start, end) => { $("textarea#compose-textarea")[0].setSelectionRange = (start, end) => {
assert.equal(start, 28); assert.equal(start, 28);
assert.equal(end, 30); assert.equal(end, 30);
}; };
@@ -1210,19 +1210,19 @@ test("initialize", ({override, override_rewire, mock_template}) => {
$("form#send_message_form").trigger(event); $("form#send_message_form").trigger(event);
// Test automatic numbering. // Test automatic numbering.
$("#compose-textarea").val("1. List item 1\n2. List item 2"); $("textarea#compose-textarea").val("1. List item 1\n2. List item 2");
$("#compose-textarea")[0].selectionStart = 29; $("textarea#compose-textarea")[0].selectionStart = 29;
$("#compose-textarea")[0].selectionEnd = 29; $("textarea#compose-textarea")[0].selectionEnd = 29;
override(compose_ui, "insert_and_scroll_into_view", (content, _textarea) => { override(compose_ui, "insert_and_scroll_into_view", (content, _textarea) => {
assert.equal(content, "\n3. "); assert.equal(content, "\n3. ");
}); });
$("form#send_message_form").trigger(event); $("form#send_message_form").trigger(event);
// Test removal of numbering. // Test removal of numbering.
$("#compose-textarea").val("1. List item 1\n2. List item 2\n3. "); $("textarea#compose-textarea").val("1. List item 1\n2. List item 2\n3. ");
$("#compose-textarea")[0].selectionStart = 33; $("textarea#compose-textarea")[0].selectionStart = 33;
$("#compose-textarea")[0].selectionEnd = 33; $("textarea#compose-textarea")[0].selectionEnd = 33;
$("#compose-textarea")[0].setSelectionRange = (start, end) => { $("textarea#compose-textarea")[0].setSelectionRange = (start, end) => {
assert.equal(start, 30); assert.equal(start, 30);
assert.equal(end, 33); assert.equal(end, 33);
}; };
@@ -1231,9 +1231,9 @@ test("initialize", ({override, override_rewire, mock_template}) => {
}); });
$("form#send_message_form").trigger(event); $("form#send_message_form").trigger(event);
$("#compose-textarea").val("A"); $("textarea#compose-textarea").val("A");
$("#compose-textarea")[0].selectionStart = 4; $("textarea#compose-textarea")[0].selectionStart = 4;
$("#compose-textarea")[0].selectionEnd = 4; $("textarea#compose-textarea")[0].selectionEnd = 4;
override(compose_ui, "insert_and_scroll_into_view", (content, _textarea) => { override(compose_ui, "insert_and_scroll_into_view", (content, _textarea) => {
assert.equal(content, "\n"); assert.equal(content, "\n");
}); });
@@ -1259,7 +1259,7 @@ test("initialize", ({override, override_rewire, mock_template}) => {
}; };
// We trigger keydown in order to make nextFocus !== false // We trigger keydown in order to make nextFocus !== false
$("form#send_message_form").trigger(event); $("form#send_message_form").trigger(event);
$("#stream_message_recipient_topic").off("mouseup"); $("input#stream_message_recipient_topic").off("mouseup");
event.type = "keyup"; event.type = "keyup";
$("form#send_message_form").trigger(event); $("form#send_message_form").trigger(event);
event.key = "Tab"; event.key = "Tab";
@@ -1268,7 +1268,7 @@ test("initialize", ({override, override_rewire, mock_template}) => {
event.key = "a"; event.key = "a";
$("form#send_message_form").trigger(event); $("form#send_message_form").trigger(event);
$("#stream_message_recipient_topic").off("focus"); $("input#stream_message_recipient_topic").off("focus");
$("#private_message_recipient").off("focus"); $("#private_message_recipient").off("focus");
$("form#send_message_form").off("keydown"); $("form#send_message_form").off("keydown");
$("form#send_message_form").off("keyup"); $("form#send_message_form").off("keyup");

View File

@@ -48,7 +48,7 @@ test("feature_check", ({override}) => {
}); });
test("get_item", () => { test("get_item", () => {
assert.equal(upload.get_item("textarea", {mode: "compose"}), $("#compose-textarea")); assert.equal(upload.get_item("textarea", {mode: "compose"}), $("textarea#compose-textarea"));
assert.equal( assert.equal(
upload.get_item("upload_banner_message", {mode: "compose"}, "id_1"), upload.get_item("upload_banner_message", {mode: "compose"}, "id_1"),
$("#compose_banners .upload_banner.file_id_1 .upload_msg"), $("#compose_banners .upload_banner.file_id_1 .upload_msg"),
@@ -323,7 +323,7 @@ test("upload_files", async ({mock_template, override_rewire}) => {
compose_ui_replace_syntax_called = true; compose_ui_replace_syntax_called = true;
assert.equal(old_syntax, "[translated: Uploading budapest.png…]()"); assert.equal(old_syntax, "[translated: Uploading budapest.png…]()");
assert.equal(new_syntax, ""); assert.equal(new_syntax, "");
assert.equal(textarea, $("#compose-textarea")); assert.equal(textarea, $("textarea#compose-textarea"));
}); });
on_click_close_button_callback(); on_click_close_button_callback();
assert.ok(remove_file_called); assert.ok(remove_file_called);
@@ -333,14 +333,14 @@ test("upload_files", async ({mock_template, override_rewire}) => {
hide_upload_banner_called = false; hide_upload_banner_called = false;
compose_ui_replace_syntax_called = false; compose_ui_replace_syntax_called = false;
remove_file_called = false; remove_file_called = false;
$("#compose-textarea").val("user modified text"); $("textarea#compose-textarea").val("user modified text");
on_click_close_button_callback(); on_click_close_button_callback();
assert.ok(remove_file_called); assert.ok(remove_file_called);
assert.ok(hide_upload_banner_called); assert.ok(hide_upload_banner_called);
assert.ok(compose_ui_autosize_textarea_called); assert.ok(compose_ui_autosize_textarea_called);
assert.ok(compose_ui_replace_syntax_called); assert.ok(compose_ui_replace_syntax_called);
assert.equal($("#compose-textarea").val(), "user modified text"); assert.equal($("textarea#compose-textarea").val(), "user modified text");
}); });
test("uppy_config", () => { test("uppy_config", () => {
@@ -550,7 +550,7 @@ test("uppy_events", ({override_rewire, mock_template}) => {
new_syntax, new_syntax,
"[copenhagen.png](/user_uploads/4/cb/rue1c-MlMUjDAUdkRrEM4BTJ/copenhagen.png)", "[copenhagen.png](/user_uploads/4/cb/rue1c-MlMUjDAUdkRrEM4BTJ/copenhagen.png)",
); );
assert.equal(textarea, $("#compose-textarea")); assert.equal(textarea, $("textarea#compose-textarea"));
}); });
let compose_ui_autosize_textarea_called = false; let compose_ui_autosize_textarea_called = false;
override_rewire(compose_ui, "autosize_textarea", () => { override_rewire(compose_ui, "autosize_textarea", () => {
@@ -590,15 +590,15 @@ test("uppy_events", ({override_rewire, mock_template}) => {
compose_ui_replace_syntax_called = true; compose_ui_replace_syntax_called = true;
assert.equal(old_syntax, "[translated: Uploading copenhagen.png…]()"); assert.equal(old_syntax, "[translated: Uploading copenhagen.png…]()");
assert.equal(new_syntax, ""); assert.equal(new_syntax, "");
assert.equal(textarea, $("#compose-textarea")); assert.equal(textarea, $("textarea#compose-textarea"));
}); });
on_restriction_failed_callback(file, null, null); on_restriction_failed_callback(file, null, null);
assert.ok(compose_ui_replace_syntax_called); assert.ok(compose_ui_replace_syntax_called);
compose_ui_replace_syntax_called = false; compose_ui_replace_syntax_called = false;
$("#compose-textarea").val("user modified text"); $("textarea#compose-textarea").val("user modified text");
on_restriction_failed_callback(file, null, null); on_restriction_failed_callback(file, null, null);
assert.ok(compose_ui_replace_syntax_called); assert.ok(compose_ui_replace_syntax_called);
assert.equal($("#compose-textarea").val(), "user modified text"); assert.equal($("textarea#compose-textarea").val(), "user modified text");
state = { state = {
type: "error", type: "error",
@@ -635,10 +635,10 @@ test("uppy_events", ({override_rewire, mock_template}) => {
$("#compose_banners .upload_banner .upload_msg").text(""); $("#compose_banners .upload_banner .upload_msg").text("");
assert.ok(hide_upload_banner_called); assert.ok(hide_upload_banner_called);
$("#compose-textarea").val("user modified text"); $("textarea#compose-textarea").val("user modified text");
on_upload_error_callback(file, null); on_upload_error_callback(file, null);
assert.ok(compose_ui_replace_syntax_called); assert.ok(compose_ui_replace_syntax_called);
assert.equal($("#compose-textarea").val(), "user modified text"); assert.equal($("textarea#compose-textarea").val(), "user modified text");
}); });
test("main_file_drop_compose_mode", ({override, override_rewire}) => { test("main_file_drop_compose_mode", ({override, override_rewire}) => {