@@ -93,6 +93,7 @@ export class View {
9393
9494 private keyMapSelect ?: HTMLSelectElement ;
9595 private themeSelect ?: HTMLSelectElement ;
96+ private spellToggle ?: HTMLInputElement ;
9697
9798 private keyMap = new Compartment ( ) ;
9899 private theme = new Compartment ( ) ;
@@ -281,21 +282,21 @@ export class View {
281282
282283 const spellDiv = document . createElement ( 'div' ) ;
283284 spellDiv . classList . add ( 'pg-cm-toolbar-item' ) ;
284- const spellToggle = document . createElement ( 'input' ) ;
285- spellToggle . name = 'pg-cm-spell-toggle' ;
286- spellToggle . type = 'checkbox' ;
287- spellToggle . id = `pg-cm-spell-toggle-${ this . instance . toString ( ) } ` ;
288- if ( localStorage . getItem ( 'pg-cm-editor.spell-check' ) === 'true' ) spellToggle . checked = true ;
285+ this . spellToggle = document . createElement ( 'input' ) ;
286+ this . spellToggle . name = 'pg-cm-spell-toggle' ;
287+ this . spellToggle . type = 'checkbox' ;
288+ this . spellToggle . id = `pg-cm-spell-toggle-${ this . instance . toString ( ) } ` ;
289+ if ( localStorage . getItem ( 'pg-cm-editor.spell-check' ) === 'true' ) this . spellToggle . checked = true ;
289290 const spellToggleLabel = document . createElement ( 'label' ) ;
290- spellToggleLabel . setAttribute ( 'for' , spellToggle . id ) ;
291+ spellToggleLabel . setAttribute ( 'for' , this . spellToggle . id ) ;
291292 spellToggleLabel . textContent = 'Enable Spell Checking' ;
292- spellToggle . addEventListener ( 'change' , ( ) => {
293+ this . spellToggle . addEventListener ( 'change' , ( ) => {
293294 const content = view . dom . querySelector ( '.cm-content' ) ;
294- content ?. setAttribute ( 'spellcheck' , spellToggle . checked ? 'true' : 'false' ) ;
295- localStorage . setItem ( 'pg-cm-editor.spell-check' , spellToggle . checked ? 'true' : 'false' ) ;
295+ content ?. setAttribute ( 'spellcheck' , this . spellToggle ? .checked ? 'true' : 'false' ) ;
296+ localStorage . setItem ( 'pg-cm-editor.spell-check' , this . spellToggle ? .checked ? 'true' : 'false' ) ;
296297 ( content as HTMLElement ) . focus ( ) ;
297298 } ) ;
298- spellDiv . append ( spellToggle , spellToggleLabel ) ;
299+ spellDiv . append ( this . spellToggle , spellToggleLabel ) ;
299300 dom . append ( spellDiv ) ;
300301
301302 const directionDiv = document . createElement ( 'div' ) ;
@@ -331,6 +332,8 @@ export class View {
331332 if ( selectedKeyMap !== 'Default' ) void this . setKeyMap ( selectedKeyMap ) ;
332333 const selectedTheme = localStorage . getItem ( 'pg-cm-editor.theme' ) ?? options ?. theme ?? 'Default' ;
333334 if ( selectedTheme !== 'Default' ) void this . setTheme ( selectedTheme ) ;
335+
336+ if ( this . spellToggle ?. checked ) this . spellToggle . dispatchEvent ( new Event ( 'change' ) ) ;
334337 }
335338
336339 set source ( doc : string ) {
0 commit comments