diff options
author | Yarden Shoham <git@yardenshoham.com> | 2024-03-25 02:00:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-25 00:00:54 +0000 |
commit | 428e05662f4f745fe7fef04ce9218a86aa4f1b6c (patch) | |
tree | 765d9d74ae251949be2922c367d7c3e3c7d031c7 | |
parent | a7d0c5de4c82d8d206f6c5c51f012ee831502f67 (diff) | |
download | gitea-428e05662f4f745fe7fef04ce9218a86aa4f1b6c.tar.gz gitea-428e05662f4f745fe7fef04ce9218a86aa4f1b6c.zip |
Remove jQuery `.attr` from the ComboMarkdownEditor (#30051)
- Switched from jQuery `attr` to plain javascript `getAttribute` and
`setAttribute`
- Tested the markdown editor and it works as before
Signed-off-by: Yarden Shoham <git@yardenshoham.com>
-rw-r--r-- | web_src/js/features/comp/ComboMarkdownEditor.js | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/web_src/js/features/comp/ComboMarkdownEditor.js b/web_src/js/features/comp/ComboMarkdownEditor.js index 1e7b554b98..1e728ca201 100644 --- a/web_src/js/features/comp/ComboMarkdownEditor.js +++ b/web_src/js/features/comp/ComboMarkdownEditor.js @@ -132,34 +132,33 @@ class ComboMarkdownEditor { setupTab() { const $container = $(this.container); - const $tabMenu = $container.find('.tabular.menu'); - const $tabs = $tabMenu.find('> .item'); + const tabs = $container[0].querySelectorAll('.tabular.menu > .item'); // Fomantic Tab requires the "data-tab" to be globally unique. // So here it uses our defined "data-tab-for" and "data-tab-panel" to generate the "data-tab" attribute for Fomantic. - const $tabEditor = $tabs.filter(`.item[data-tab-for="markdown-writer"]`); - const $tabPreviewer = $tabs.filter(`.item[data-tab-for="markdown-previewer"]`); - $tabEditor.attr('data-tab', `markdown-writer-${elementIdCounter}`); - $tabPreviewer.attr('data-tab', `markdown-previewer-${elementIdCounter}`); - const $panelEditor = $container.find('.ui.tab[data-tab-panel="markdown-writer"]'); - const $panelPreviewer = $container.find('.ui.tab[data-tab-panel="markdown-previewer"]'); - $panelEditor.attr('data-tab', `markdown-writer-${elementIdCounter}`); - $panelPreviewer.attr('data-tab', `markdown-previewer-${elementIdCounter}`); + const tabEditor = Array.from(tabs).find((tab) => tab.getAttribute('data-tab-for') === 'markdown-writer'); + const tabPreviewer = Array.from(tabs).find((tab) => tab.getAttribute('data-tab-for') === 'markdown-previewer'); + tabEditor.setAttribute('data-tab', `markdown-writer-${elementIdCounter}`); + tabPreviewer.setAttribute('data-tab', `markdown-previewer-${elementIdCounter}`); + const panelEditor = $container[0].querySelector('.ui.tab[data-tab-panel="markdown-writer"]'); + const panelPreviewer = $container[0].querySelector('.ui.tab[data-tab-panel="markdown-previewer"]'); + panelEditor.setAttribute('data-tab', `markdown-writer-${elementIdCounter}`); + panelPreviewer.setAttribute('data-tab', `markdown-previewer-${elementIdCounter}`); elementIdCounter++; - $tabEditor[0].addEventListener('click', () => { + tabEditor.addEventListener('click', () => { requestAnimationFrame(() => { this.focus(); }); }); - $tabs.tab(); + $(tabs).tab(); - this.previewUrl = $tabPreviewer.attr('data-preview-url'); - this.previewContext = $tabPreviewer.attr('data-preview-context'); + this.previewUrl = tabPreviewer.getAttribute('data-preview-url'); + this.previewContext = tabPreviewer.getAttribute('data-preview-context'); this.previewMode = this.options.previewMode ?? 'comment'; this.previewWiki = this.options.previewWiki ?? false; - $tabPreviewer.on('click', async () => { + tabPreviewer.addEventListener('click', async () => { const formData = new FormData(); formData.append('mode', this.previewMode); formData.append('context', this.previewContext); @@ -167,7 +166,7 @@ class ComboMarkdownEditor { formData.append('wiki', this.previewWiki); const response = await POST(this.previewUrl, {data: formData}); const data = await response.text(); - renderPreviewPanelContent($panelPreviewer, data); + renderPreviewPanelContent($(panelPreviewer), data); }); } |