aboutsummaryrefslogtreecommitdiffstats
path: root/web_src/js/features/repo-issue.ts
diff options
context:
space:
mode:
Diffstat (limited to 'web_src/js/features/repo-issue.ts')
-rw-r--r--web_src/js/features/repo-issue.ts48
1 files changed, 20 insertions, 28 deletions
diff --git a/web_src/js/features/repo-issue.ts b/web_src/js/features/repo-issue.ts
index 7457531ece..9cc478712b 100644
--- a/web_src/js/features/repo-issue.ts
+++ b/web_src/js/features/repo-issue.ts
@@ -1,7 +1,7 @@
import $ from 'jquery';
import {htmlEscape} from 'escape-goat';
import {createTippy, showTemporaryTooltip} from '../modules/tippy.ts';
-import {hideElem, showElem, toggleElem} from '../utils/dom.ts';
+import {addDelegatedEventListener, createElementFromHTML, hideElem, showElem, toggleElem} from '../utils/dom.ts';
import {setFileFolding} from './file-fold.ts';
import {ComboMarkdownEditor, getComboMarkdownEditor, initComboMarkdownEditor} from './comp/ComboMarkdownEditor.ts';
import {parseIssuePageInfo, toAbsoluteUrl} from '../utils.ts';
@@ -443,21 +443,19 @@ export function initRepoPullRequestReview() {
});
}
- $(document).on('click', '.add-code-comment', async function (e) {
- if (e.target.classList.contains('btn-add-single')) return; // https://github.com/go-gitea/gitea/issues/4745
+ addDelegatedEventListener(document, 'click', '.add-code-comment', async (el, e) => {
e.preventDefault();
- const isSplit = this.closest('.code-diff')?.classList.contains('code-diff-split');
- const side = this.getAttribute('data-side');
- const idx = this.getAttribute('data-idx');
- const path = this.closest('[data-path]')?.getAttribute('data-path');
- const tr = this.closest('tr');
+ const isSplit = el.closest('.code-diff')?.classList.contains('code-diff-split');
+ const side = el.getAttribute('data-side');
+ const idx = el.getAttribute('data-idx');
+ const path = el.closest('[data-path]')?.getAttribute('data-path');
+ const tr = el.closest('tr');
const lineType = tr.getAttribute('data-line-type');
- const ntr = tr.nextElementSibling;
- let $ntr = $(ntr);
+ let ntr = tr.nextElementSibling;
if (!ntr?.classList.contains('add-comment')) {
- $ntr = $(`
+ ntr = createElementFromHTML(`
<tr class="add-comment" data-line-type="${lineType}">
${isSplit ? `
<td class="add-comment-left" colspan="4"></td>
@@ -466,24 +464,18 @@ export function initRepoPullRequestReview() {
<td class="add-comment-left add-comment-right" colspan="5"></td>
`}
</tr>`);
- $(tr).after($ntr);
+ tr.after(ntr);
}
-
- const $td = $ntr.find(`.add-comment-${side}`);
- const $commentCloud = $td.find('.comment-code-cloud');
- if (!$commentCloud.length && !$ntr.find('button[name="pending_review"]').length) {
- try {
- const response = await GET(this.closest('[data-new-comment-url]')?.getAttribute('data-new-comment-url'));
- const html = await response.text();
- $td.html(html);
- $td.find("input[name='line']").val(idx);
- $td.find("input[name='side']").val(side === 'left' ? 'previous' : 'proposed');
- $td.find("input[name='path']").val(path);
- const editor = await initComboMarkdownEditor($td[0].querySelector('.combo-markdown-editor'));
- editor.focus();
- } catch (error) {
- console.error(error);
- }
+ const td = ntr.querySelector(`.add-comment-${side}`);
+ const commentCloud = td.querySelector('.comment-code-cloud');
+ if (!commentCloud && !ntr.querySelector('button[name="pending_review"]')) {
+ const response = await GET(el.closest('[data-new-comment-url]')?.getAttribute('data-new-comment-url'));
+ td.innerHTML = await response.text();
+ td.querySelector<HTMLInputElement>("input[name='line']").value = idx;
+ td.querySelector<HTMLInputElement>("input[name='side']").value = (side === 'left' ? 'previous' : 'proposed');
+ td.querySelector<HTMLInputElement>("input[name='path']").value = path;
+ const editor = await initComboMarkdownEditor(td.querySelector<HTMLElement>('.combo-markdown-editor'));
+ editor.focus();
}
});
}