Merge pull request '[BUG] Fix Ctrl+Enter on submitting review comment' (#2374) from gusted/forgejo-bp-2370 into v1.21/forgejo

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/2374
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
This commit is contained in:
Earl Warren 2024-02-17 16:25:27 +00:00
commit cd8a59e7bd

View file

@ -57,8 +57,10 @@ function initRepoDiffConversationForm() {
$form.addClass('is-loading'); $form.addClass('is-loading');
const formData = new FormData($form[0]); const formData = new FormData($form[0]);
// if the form is submitted by a button, append the button's name and value to the form data // If the form is submitted by a button, append the button's name and value to the form data.
const submitter = submitEventSubmitter(e.originalEvent); // originalEvent can be undefined, such as an event that's caused by Ctrl+Enter, in that case
// sent the event itself.
const submitter = submitEventSubmitter(e.originalEvent ?? e);
const isSubmittedByButton = (submitter?.nodeName === 'BUTTON') || (submitter?.nodeName === 'INPUT' && submitter.type === 'submit'); const isSubmittedByButton = (submitter?.nodeName === 'BUTTON') || (submitter?.nodeName === 'INPUT' && submitter.type === 'submit');
if (isSubmittedByButton && submitter.name) { if (isSubmittedByButton && submitter.name) {
formData.append(submitter.name, submitter.value); formData.append(submitter.name, submitter.value);
@ -76,6 +78,7 @@ function initRepoDiffConversationForm() {
$newConversationHolder.find('.dropdown').dropdown(); $newConversationHolder.find('.dropdown').dropdown();
initCompReactionSelector($newConversationHolder); initCompReactionSelector($newConversationHolder);
} catch { // here the caught error might be a jQuery AJAX error (thrown by await $.post), which is not good to use for error message handling } catch { // here the caught error might be a jQuery AJAX error (thrown by await $.post), which is not good to use for error message handling
console.error('error when submitting conversation', e);
showErrorToast(i18n.network_error); showErrorToast(i18n.network_error);
} finally { } finally {
$form.removeClass('is-loading'); $form.removeClass('is-loading');