Skip to content

Commit 92d83c8

Browse files
committed
Make spell checking actually work when the page reloads if the option is checked.
1 parent 2d84321 commit 92d83c8

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@openwebwork/pg-codemirror-editor",
3-
"version": "0.0.2",
3+
"version": "0.0.3",
44
"description": "PG CodeMirror Editor",
55
"author": "The WeBWorK Project",
66
"license": "MIT",

src/pg-codemirror-editor.ts

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)