mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Use async await to fix empty quote reply at first time (#23168)
The reason why quote reply is empty is when quote reply is clicked, it triggers the click function on `.comment-form-reply` button, and when the first time this function is triggered, easyMDE for the reply has not yet initialized, so that click handler of `.quote-reply` button in `repo-legacy.js` got an `undefined` as easyMDE, and the following lines which put quoted reply into the easyMDE is not executed. The workaround in this PR is to pass the replied content to '.comment-form-reply' button if easyMDE is not yet initialized (quote reply first clicked) and put the replied content into it the after easyMDE is created. Now quote reply on first click: https://user-images.githubusercontent.com/17645053/221452823-fc699d50-1649-4af1-952e-f04fc8d2978e.mov <br /> Update: The above change is not appropriate as stated in the [comment](https://github.com/go-gitea/gitea/pull/23168#issuecomment-1445562284) Use await instead Close #22075. Close #23247.
This commit is contained in:
		@@ -6,7 +6,7 @@ import {
 | 
			
		||||
  initRepoIssueBranchSelect, initRepoIssueCodeCommentCancel, initRepoIssueCommentDelete,
 | 
			
		||||
  initRepoIssueComments, initRepoIssueDependencyDelete, initRepoIssueReferenceIssue,
 | 
			
		||||
  initRepoIssueStatusButton, initRepoIssueTitleEdit, initRepoIssueWipToggle,
 | 
			
		||||
  initRepoPullRequestUpdate, updateIssuesMeta,
 | 
			
		||||
  initRepoPullRequestUpdate, updateIssuesMeta, handleReply
 | 
			
		||||
} from './repo-issue.js';
 | 
			
		||||
import {initUnicodeEscapeButton} from './repo-unicode-escape.js';
 | 
			
		||||
import {svg} from '../svg.js';
 | 
			
		||||
@@ -613,15 +613,15 @@ function initRepoIssueCommentEdit() {
 | 
			
		||||
  $(document).on('click', '.edit-content', onEditContent);
 | 
			
		||||
 | 
			
		||||
  // Quote reply
 | 
			
		||||
  $(document).on('click', '.quote-reply', function (event) {
 | 
			
		||||
  $(document).on('click', '.quote-reply', async function (event) {
 | 
			
		||||
    event.preventDefault();
 | 
			
		||||
    const target = $(this).data('target');
 | 
			
		||||
    const quote = $(`#${target}`).text().replace(/\n/g, '\n> ');
 | 
			
		||||
    const content = `> ${quote}\n\n`;
 | 
			
		||||
    let easyMDE;
 | 
			
		||||
    if ($(this).hasClass('quote-reply-diff')) {
 | 
			
		||||
      const $parent = $(this).closest('.comment-code-cloud');
 | 
			
		||||
      $parent.find('button.comment-form-reply').trigger('click');
 | 
			
		||||
      easyMDE = getAttachedEasyMDE($parent.find('[name="content"]'));
 | 
			
		||||
      const $replyBtn = $(this).closest('.comment-code-cloud').find('button.comment-form-reply');
 | 
			
		||||
      easyMDE = await handleReply($replyBtn);
 | 
			
		||||
    } else {
 | 
			
		||||
      // for normal issue/comment page
 | 
			
		||||
      easyMDE = getAttachedEasyMDE($('#comment-form .edit_area'));
 | 
			
		||||
@@ -637,6 +637,5 @@ function initRepoIssueCommentEdit() {
 | 
			
		||||
        easyMDE.codemirror.setCursor(easyMDE.codemirror.lineCount(), 0);
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    event.preventDefault();
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user