Make Ctrl+Enter (quick submit) work for issue comment and wiki editor (#19729)
* Make Ctrl+Enter (quick submit) work for issue comment and wiki editor * Remove the required `SubmitReviewForm.Type`, empty type (triggered by quick submit) means "comment" * Merge duplicate code
This commit is contained in:
parent
3b359b1629
commit
cc7236e852
8 changed files with 54 additions and 16 deletions
|
@ -1,5 +1,6 @@
|
|||
import $ from 'jquery';
|
||||
import attachTribute from '../tribute.js';
|
||||
import {handleGlobalEnterQuickSubmit} from '../common-global.js';
|
||||
|
||||
/**
|
||||
* @returns {EasyMDE}
|
||||
|
@ -71,9 +72,12 @@ export async function createCommentEasyMDE(textarea, easyMDEOptions = {}) {
|
|||
title: 'Revert to simple textarea',
|
||||
},
|
||||
], ...easyMDEOptions});
|
||||
|
||||
const inputField = easyMDE.codemirror.getInputField();
|
||||
inputField.classList.add('js-quick-submit');
|
||||
|
||||
easyMDE.codemirror.setOption('extraKeys', {
|
||||
'Cmd-Enter': codeMirrorQuickSubmit,
|
||||
'Ctrl-Enter': codeMirrorQuickSubmit,
|
||||
Enter: (cm) => {
|
||||
const tributeContainer = document.querySelector('.tribute-container');
|
||||
if (!tributeContainer || tributeContainer.style.display === 'none') {
|
||||
|
@ -149,3 +153,12 @@ export function validateTextareaNonEmpty($textarea) {
|
|||
$mdeInputField.prop('required', false);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* there is no guarantee that the CodeMirror object is inside the same form as the textarea,
|
||||
* so can not call handleGlobalEnterQuickSubmit directly.
|
||||
* @param {CodeMirror.EditorFromTextArea} codeMirror
|
||||
*/
|
||||
export function codeMirrorQuickSubmit(codeMirror) {
|
||||
handleGlobalEnterQuickSubmit(codeMirror.getTextArea());
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue