@@ -117,18 +117,6 @@ export const createCodeBlockSpec = createBlockSpec(
117117 if ( options . supportedLanguages ) {
118118 const select = document . createElement ( "select" ) ;
119119
120- const handleLanguageChange = ( event : Event ) => {
121- const language = ( event . target as HTMLSelectElement ) . value ;
122-
123- editor . updateBlock ( block . id , { props : { language } } ) ;
124- } ;
125- select . addEventListener ( "change" , handleLanguageChange ) ;
126-
127- const selectWrapper = document . createElement ( "div" ) ;
128- selectWrapper . contentEditable = "false" ;
129- select . value =
130- block . props . language || options . defaultLanguage || "text" ;
131-
132120 Object . entries ( options . supportedLanguages ?? { } ) . forEach (
133121 ( [ id , { name } ] ) => {
134122 const option = document . createElement ( "option" ) ;
@@ -138,11 +126,23 @@ export const createCodeBlockSpec = createBlockSpec(
138126 select . appendChild ( option ) ;
139127 } ,
140128 ) ;
141- selectWrapper . appendChild ( select ) ;
142- wrapper . appendChild ( selectWrapper ) ;
129+ select . value =
130+ block . props . language || options . defaultLanguage || "text" ;
143131
132+ const handleLanguageChange = ( event : Event ) => {
133+ const language = ( event . target as HTMLSelectElement ) . value ;
134+
135+ editor . updateBlock ( block . id , { props : { language } } ) ;
136+ } ;
137+ select . addEventListener ( "change" , handleLanguageChange ) ;
144138 removeSelectChangeListener = ( ) =>
145139 select . removeEventListener ( "change" , handleLanguageChange ) ;
140+
141+ const selectWrapper = document . createElement ( "div" ) ;
142+ selectWrapper . contentEditable = "false" ;
143+
144+ selectWrapper . appendChild ( select ) ;
145+ wrapper . appendChild ( selectWrapper ) ;
146146 }
147147 wrapper . appendChild ( pre ) ;
148148
0 commit comments