Skip to content

Commit bda875b

Browse files
authored
Switch to "Write" tab when edit comment again (#31445)
Fix #19031
1 parent 1d76e9a commit bda875b

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

web_src/js/features/comp/ComboMarkdownEditor.js

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -122,34 +122,34 @@ class ComboMarkdownEditor {
122122
}
123123

124124
setupTab() {
125-
const $container = $(this.container);
126-
const tabs = $container[0].querySelectorAll('.tabular.menu > .item');
125+
const tabs = this.container.querySelectorAll('.tabular.menu > .item');
127126

128127
// Fomantic Tab requires the "data-tab" to be globally unique.
129128
// So here it uses our defined "data-tab-for" and "data-tab-panel" to generate the "data-tab" attribute for Fomantic.
130-
const tabEditor = Array.from(tabs).find((tab) => tab.getAttribute('data-tab-for') === 'markdown-writer');
131-
const tabPreviewer = Array.from(tabs).find((tab) => tab.getAttribute('data-tab-for') === 'markdown-previewer');
132-
tabEditor.setAttribute('data-tab', `markdown-writer-${elementIdCounter}`);
133-
tabPreviewer.setAttribute('data-tab', `markdown-previewer-${elementIdCounter}`);
134-
const panelEditor = $container[0].querySelector('.ui.tab[data-tab-panel="markdown-writer"]');
135-
const panelPreviewer = $container[0].querySelector('.ui.tab[data-tab-panel="markdown-previewer"]');
129+
this.tabEditor = Array.from(tabs).find((tab) => tab.getAttribute('data-tab-for') === 'markdown-writer');
130+
this.tabPreviewer = Array.from(tabs).find((tab) => tab.getAttribute('data-tab-for') === 'markdown-previewer');
131+
this.tabEditor.setAttribute('data-tab', `markdown-writer-${elementIdCounter}`);
132+
this.tabPreviewer.setAttribute('data-tab', `markdown-previewer-${elementIdCounter}`);
133+
134+
const panelEditor = this.container.querySelector('.ui.tab[data-tab-panel="markdown-writer"]');
135+
const panelPreviewer = this.container.querySelector('.ui.tab[data-tab-panel="markdown-previewer"]');
136136
panelEditor.setAttribute('data-tab', `markdown-writer-${elementIdCounter}`);
137137
panelPreviewer.setAttribute('data-tab', `markdown-previewer-${elementIdCounter}`);
138138
elementIdCounter++;
139139

140-
tabEditor.addEventListener('click', () => {
140+
this.tabEditor.addEventListener('click', () => {
141141
requestAnimationFrame(() => {
142142
this.focus();
143143
});
144144
});
145145

146146
$(tabs).tab();
147147

148-
this.previewUrl = tabPreviewer.getAttribute('data-preview-url');
149-
this.previewContext = tabPreviewer.getAttribute('data-preview-context');
148+
this.previewUrl = this.tabPreviewer.getAttribute('data-preview-url');
149+
this.previewContext = this.tabPreviewer.getAttribute('data-preview-context');
150150
this.previewMode = this.options.previewMode ?? 'comment';
151151
this.previewUncyclo = this.options.previewUncyclo ?? false;
152-
tabPreviewer.addEventListener('click', async () => {
152+
this.tabPreviewer.addEventListener('click', async () => {
153153
const formData = new FormData();
154154
formData.append('mode', this.previewMode);
155155
formData.append('context', this.previewContext);
@@ -161,6 +161,10 @@ class ComboMarkdownEditor {
161161
});
162162
}
163163

164+
switchTabToEditor() {
165+
this.tabEditor.click();
166+
}
167+
164168
prepareEasyMDEToolbarActions() {
165169
this.easyMDEToolbarDefault = [
166170
'bold', 'italic', 'strikethrough', '|', 'heading-1', 'heading-2', 'heading-3',

web_src/js/features/repo-issue-edit.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ async function onEditContent(event) {
179179
if (!comboMarkdownEditor.value()) {
180180
comboMarkdownEditor.value(rawContent.textContent);
181181
}
182+
comboMarkdownEditor.switchTabToEditor();
182183
comboMarkdownEditor.focus();
183184
}
184185

0 commit comments

Comments
 (0)