mirror of
https://github.com/zulip/zulip.git
synced 2025-11-13 18:36:36 +00:00
upload: Append file markdown to textarea when placeholder is missing.
Fixes #26037.
This commit is contained in:
@@ -189,7 +189,9 @@ export function replace_syntax(old_syntax, new_syntax, $textarea = $("#compose-t
|
|||||||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Description
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Description
|
||||||
// for details.
|
// for details.
|
||||||
|
|
||||||
|
const old_text = $textarea.val();
|
||||||
replace($textarea[0], old_syntax, () => new_syntax, "after-replacement");
|
replace($textarea[0], old_syntax, () => new_syntax, "after-replacement");
|
||||||
|
const new_text = $textarea.val();
|
||||||
|
|
||||||
// When replacing content in a textarea, we need to move the cursor
|
// When replacing content in a textarea, we need to move the cursor
|
||||||
// to preserve its logical position if and only if the content we
|
// to preserve its logical position if and only if the content we
|
||||||
@@ -207,6 +209,9 @@ export function replace_syntax(old_syntax, new_syntax, $textarea = $("#compose-t
|
|||||||
// Otherwise we simply restore it to it's original position
|
// Otherwise we simply restore it to it's original position
|
||||||
$textarea.caret(prev_caret);
|
$textarea.caret(prev_caret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Return if anything was actually replaced.
|
||||||
|
return old_text !== new_text;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function compute_placeholder_text(opts) {
|
export function compute_placeholder_text(opts) {
|
||||||
|
|||||||
@@ -341,12 +341,17 @@ export function setup_upload(config) {
|
|||||||
const split_url = url.split("/");
|
const split_url = url.split("/");
|
||||||
const filename = split_url.at(-1);
|
const filename = split_url.at(-1);
|
||||||
const filename_url = "[" + filename + "](" + url + ")";
|
const filename_url = "[" + filename + "](" + url + ")";
|
||||||
compose_ui.replace_syntax(
|
const $text_area = get_item("textarea", config);
|
||||||
|
const replacement_successful = compose_ui.replace_syntax(
|
||||||
get_translated_status(file),
|
get_translated_status(file),
|
||||||
filename_url,
|
filename_url,
|
||||||
get_item("textarea", config),
|
$text_area,
|
||||||
);
|
);
|
||||||
compose_ui.autosize_textarea(get_item("textarea", config));
|
if (!replacement_successful) {
|
||||||
|
compose_ui.insert_syntax_and_focus(filename_url, $text_area);
|
||||||
|
}
|
||||||
|
|
||||||
|
compose_ui.autosize_textarea($text_area);
|
||||||
|
|
||||||
// The uploaded files should be removed since uppy doesn't allow files in the store
|
// The uploaded files should be removed since uppy doesn't allow files in the store
|
||||||
// to be re-uploaded again.
|
// to be re-uploaded again.
|
||||||
|
|||||||
@@ -492,6 +492,7 @@ test("copy_paste", ({override, override_rewire}) => {
|
|||||||
test("uppy_events", ({override_rewire, mock_template}) => {
|
test("uppy_events", ({override_rewire, mock_template}) => {
|
||||||
$("#compose_banners .upload_banner .moving_bar").css = () => {};
|
$("#compose_banners .upload_banner .moving_bar").css = () => {};
|
||||||
$("#compose_banners .upload_banner").length = 0;
|
$("#compose_banners .upload_banner").length = 0;
|
||||||
|
override_rewire(compose_ui, "smart_insert_inline", () => {});
|
||||||
|
|
||||||
const callbacks = {};
|
const callbacks = {};
|
||||||
let state = {};
|
let state = {};
|
||||||
|
|||||||
Reference in New Issue
Block a user