@@ -93,6 +93,7 @@ export class View {
93
93
94
94
private keyMapSelect ?: HTMLSelectElement ;
95
95
private themeSelect ?: HTMLSelectElement ;
96
+ private spellToggle ?: HTMLInputElement ;
96
97
97
98
private keyMap = new Compartment ( ) ;
98
99
private theme = new Compartment ( ) ;
@@ -281,21 +282,21 @@ export class View {
281
282
282
283
const spellDiv = document . createElement ( 'div' ) ;
283
284
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 ;
289
290
const spellToggleLabel = document . createElement ( 'label' ) ;
290
- spellToggleLabel . setAttribute ( 'for' , spellToggle . id ) ;
291
+ spellToggleLabel . setAttribute ( 'for' , this . spellToggle . id ) ;
291
292
spellToggleLabel . textContent = 'Enable Spell Checking' ;
292
- spellToggle . addEventListener ( 'change' , ( ) => {
293
+ this . spellToggle . addEventListener ( 'change' , ( ) => {
293
294
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' ) ;
296
297
( content as HTMLElement ) . focus ( ) ;
297
298
} ) ;
298
- spellDiv . append ( spellToggle , spellToggleLabel ) ;
299
+ spellDiv . append ( this . spellToggle , spellToggleLabel ) ;
299
300
dom . append ( spellDiv ) ;
300
301
301
302
const directionDiv = document . createElement ( 'div' ) ;
@@ -331,6 +332,8 @@ export class View {
331
332
if ( selectedKeyMap !== 'Default' ) void this . setKeyMap ( selectedKeyMap ) ;
332
333
const selectedTheme = localStorage . getItem ( 'pg-cm-editor.theme' ) ?? options ?. theme ?? 'Default' ;
333
334
if ( selectedTheme !== 'Default' ) void this . setTheme ( selectedTheme ) ;
335
+
336
+ if ( this . spellToggle ?. checked ) this . spellToggle . dispatchEvent ( new Event ( 'change' ) ) ;
334
337
}
335
338
336
339
set source ( doc : string ) {
0 commit comments