From 4d66ee1f74799196cbdbfd925c3f95e552584b42 Mon Sep 17 00:00:00 2001 From: Jimmy Praet Date: Tue, 8 Dec 2020 07:11:27 +0100 Subject: [PATCH] Fix Quote Reply button on review diff (#13830) * Fix Quote Reply #13762 * requestAnimationFrame() instead of setTimeout() Co-authored-by: 6543 <6543@obermui.de> --- web_src/js/index.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/web_src/js/index.js b/web_src/js/index.js index ef865529d..2cb928b20 100644 --- a/web_src/js/index.js +++ b/web_src/js/index.js @@ -901,25 +901,23 @@ async function initRepository() { const target = $(this).data('target'); const quote = $(`#comment-${target}`).text().replace(/\n/g, '\n> '); const content = `> ${quote}\n\n`; - - let $content; + let $simplemde = autoSimpleMDE; if ($(this).hasClass('quote-reply-diff')) { const $parent = $(this).closest('.comment-code-cloud'); $parent.find('button.comment-form-reply').trigger('click'); - $content = $parent.find('[name="content"]'); - if ($content.val() !== '') { - $content.val(`${$content.val()}\n\n${content}`); + $simplemde = $parent.find('[name="content"]').data('simplemde'); + } + if ($simplemde !== null) { + if ($simplemde.value() !== '') { + $simplemde.value(`${$simplemde.value()}\n\n${content}`); } else { - $content.val(`${content}`); - } - $content.focus(); - } else if (autoSimpleMDE !== null) { - if (autoSimpleMDE.value() !== '') { - autoSimpleMDE.value(`${autoSimpleMDE.value()}\n\n${content}`); - } else { - autoSimpleMDE.value(`${content}`); + $simplemde.value(`${content}`); } } + requestAnimationFrame(() => { + $simplemde.codemirror.focus(); + $simplemde.codemirror.setCursor($simplemde.codemirror.lineCount(), 0); + }); event.preventDefault(); }); @@ -1082,8 +1080,10 @@ async function initRepository() { $textarea.val($rawContent.text()); $simplemde.value($rawContent.text()); } - $textarea.focus(); - $simplemde.codemirror.focus(); + requestAnimationFrame(() => { + $textarea.focus(); + $simplemde.codemirror.focus(); + }); event.preventDefault(); });