diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2023-12-16 19:55:02 -0500 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-17 00:55:02 +0000 | 
| commit | 95ad1ae1ef4a53802c12eab4c9b1545af0333aa1 (patch) | |
| tree | c08016ccb3265a5931baf413cd9d78fcbf600ae9 /ext/js/display/display-profile-selection.js | |
| parent | 77d27113d347b4724302f1c72de1f238e04aeead (diff) | |
Safer query selector (#364)
* Add querySelectorNotNull helper function
* Use querySelectorNotNull
* Updates
* Update settings
* Remove unused
* Update
* Update function calls
* More updates
* Update types
* Remove obsolete code
Diffstat (limited to 'ext/js/display/display-profile-selection.js')
| -rw-r--r-- | ext/js/display/display-profile-selection.js | 15 | 
1 files changed, 10 insertions, 5 deletions
diff --git a/ext/js/display/display-profile-selection.js b/ext/js/display/display-profile-selection.js index c5cb7d06..f2ebd3e4 100644 --- a/ext/js/display/display-profile-selection.js +++ b/ext/js/display/display-profile-selection.js @@ -18,6 +18,7 @@  import {EventListenerCollection, generateId} from '../core.js';  import {PanelElement} from '../dom/panel-element.js'; +import {querySelectorNotNull} from '../dom/query-selector.js';  import {yomitan} from '../yomitan.js';  export class DisplayProfileSelection { @@ -28,12 +29,14 @@ export class DisplayProfileSelection {          /** @type {import('./display.js').Display} */          this._display = display;          /** @type {HTMLElement} */ -        this._profielList = /** @type {HTMLElement} */ (document.querySelector('#profile-list')); +        this._profielList = querySelectorNotNull(document, '#profile-list');          /** @type {HTMLButtonElement} */ -        this._profileButton = /** @type {HTMLButtonElement} */ (document.querySelector('#profile-button')); +        this._profileButton = querySelectorNotNull(document, '#profile-button'); +        /** @type {HTMLElement} */ +        const profilePanelElement = querySelectorNotNull(document, '#profile-panel');          /** @type {PanelElement} */          this._profilePanel = new PanelElement({ -            node: /** @type {HTMLElement} */ (document.querySelector('#profile-panel')), +            node: profilePanelElement,              closingAnimationDuration: 375 // Milliseconds; includes buffer          });          /** @type {boolean} */ @@ -98,9 +101,11 @@ export class DisplayProfileSelection {          for (let i = 0, ii = profiles.length; i < ii; ++i) {              const {name} = profiles[i];              const entry = displayGenerator.createProfileListItem(); -            const radio = /** @type {HTMLInputElement} */ (entry.querySelector('.profile-entry-is-default-radio')); +            /** @type {HTMLInputElement} */ +            const radio = querySelectorNotNull(entry, '.profile-entry-is-default-radio');              radio.checked = (i === profileCurrent); -            const nameNode = /** @type {Element} */ (entry.querySelector('.profile-list-item-name')); +            /** @type {Element} */ +            const nameNode = querySelectorNotNull(entry, '.profile-list-item-name');              nameNode.textContent = name;              fragment.appendChild(entry);              this._eventListeners.addEventListener(radio, 'change', this._onProfileRadioChange.bind(this, i), false);  |