mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 10:56:10 +01: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