@@ -132,42 +132,41 @@ class ComboMarkdownEditor {
132132
133133 setupTab ( ) {
134134 const $container = $ ( this . container ) ;
135- const $tabMenu = $container . find ( '.tabular.menu' ) ;
136- const $tabs = $tabMenu . find ( '> .item' ) ;
135+ const tabs = $container [ 0 ] . querySelectorAll ( '.tabular.menu > .item' ) ;
137136
138137 // Fomantic Tab requires the "data-tab" to be globally unique.
139138 // So here it uses our defined "data-tab-for" and "data-tab-panel" to generate the "data-tab" attribute for Fomantic.
140- const $ tabEditor = $ tabs. filter ( `.item[ data-tab-for=" markdown-writer"]` ) ;
141- const $ tabPreviewer = $ tabs. filter ( `.item[ data-tab-for=" markdown-previewer"]` ) ;
142- $ tabEditor. attr ( 'data-tab' , `markdown-writer-${ elementIdCounter } ` ) ;
143- $ tabPreviewer. attr ( 'data-tab' , `markdown-previewer-${ elementIdCounter } ` ) ;
144- const $ panelEditor = $container . find ( '.ui.tab[data-tab-panel="markdown-writer"]' ) ;
145- const $ panelPreviewer = $container . find ( '.ui.tab[data-tab-panel="markdown-previewer"]' ) ;
146- $ panelEditor. attr ( 'data-tab' , `markdown-writer-${ elementIdCounter } ` ) ;
147- $ panelPreviewer. attr ( 'data-tab' , `markdown-previewer-${ elementIdCounter } ` ) ;
139+ const tabEditor = Array . from ( tabs ) . find ( ( tab ) => tab . getAttribute ( ' data-tab-for' ) === ' markdown-writer' ) ;
140+ const tabPreviewer = Array . from ( tabs ) . find ( ( tab ) => tab . getAttribute ( ' data-tab-for' ) === ' markdown-previewer' ) ;
141+ tabEditor . setAttribute ( 'data-tab' , `markdown-writer-${ elementIdCounter } ` ) ;
142+ tabPreviewer . setAttribute ( 'data-tab' , `markdown-previewer-${ elementIdCounter } ` ) ;
143+ const panelEditor = $container [ 0 ] . querySelector ( '.ui.tab[data-tab-panel="markdown-writer"]' ) ;
144+ const panelPreviewer = $container [ 0 ] . querySelector ( '.ui.tab[data-tab-panel="markdown-previewer"]' ) ;
145+ panelEditor . setAttribute ( 'data-tab' , `markdown-writer-${ elementIdCounter } ` ) ;
146+ panelPreviewer . setAttribute ( 'data-tab' , `markdown-previewer-${ elementIdCounter } ` ) ;
148147 elementIdCounter ++ ;
149148
150- $ tabEditor[ 0 ] . addEventListener ( 'click' , ( ) => {
149+ tabEditor . addEventListener ( 'click' , ( ) => {
151150 requestAnimationFrame ( ( ) => {
152151 this . focus ( ) ;
153152 } ) ;
154153 } ) ;
155154
156- $tabs . tab ( ) ;
155+ $ ( tabs ) . tab ( ) ;
157156
158- this . previewUrl = $ tabPreviewer. attr ( 'data-preview-url' ) ;
159- this . previewContext = $ tabPreviewer. attr ( 'data-preview-context' ) ;
157+ this . previewUrl = tabPreviewer . getAttribute ( 'data-preview-url' ) ;
158+ this . previewContext = tabPreviewer . getAttribute ( 'data-preview-context' ) ;
160159 this . previewMode = this . options . previewMode ?? 'comment' ;
161160 this . previewWiki = this . options . previewWiki ?? false ;
162- $ tabPreviewer. on ( 'click' , async ( ) => {
161+ tabPreviewer . addEventListener ( 'click' , async ( ) => {
163162 const formData = new FormData ( ) ;
164163 formData . append ( 'mode' , this . previewMode ) ;
165164 formData . append ( 'context' , this . previewContext ) ;
166165 formData . append ( 'text' , this . value ( ) ) ;
167166 formData . append ( 'wiki' , this . previewWiki ) ;
168167 const response = await POST ( this . previewUrl , { data : formData } ) ;
169168 const data = await response . text ( ) ;
170- renderPreviewPanelContent ( $panelPreviewer , data ) ;
169+ renderPreviewPanelContent ( $ ( panelPreviewer ) , data ) ;
171170 } ) ;
172171 }
173172
0 commit comments