diff options
| author | binarycat <binarycat@envs.net> | 2025-04-02 13:56:31 -0500 |
|---|---|---|
| committer | binarycat <binarycat@envs.net> | 2025-04-02 13:56:31 -0500 |
| commit | 9f54910f4ba9d1183c5246ec16f0a35183772db2 (patch) | |
| tree | cc219ae26c68a8154b270256f0a4dfa2f931d270 /src/librustdoc/html/static/js | |
| parent | 8a341298ec1c6a029bda1cc9f0ec696e9444caa9 (diff) | |
settings.js: add elemContainsTarget utility function
this allows us to eliminate the last 3 @ts-expect-error in this file.
Diffstat (limited to 'src/librustdoc/html/static/js')
| -rw-r--r-- | src/librustdoc/html/static/js/settings.js | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/librustdoc/html/static/js/settings.js b/src/librustdoc/html/static/js/settings.js index 4facb45ae38..d82f5f54633 100644 --- a/src/librustdoc/html/static/js/settings.js +++ b/src/librustdoc/html/static/js/settings.js @@ -9,6 +9,18 @@ const isSettingsPage = window.location.pathname.endsWith("/settings.html"); /** + * @param {Element} elem + * @param {EventTarget|null} target + */ + function elemContainsTarget(elem, target) { + if (target instanceof Node) { + return elem.contains(target); + } else { + return false; + } + } + + /** * @overload {"theme"|"preferred-dark-theme"|"preferred-light-theme"} * @param {string} settingName * @param {string} value @@ -322,12 +334,10 @@ const settingsBtn = getSettingsButton(); const helpUnfocused = helpBtn === null || (!helpBtn.contains(document.activeElement) && - // @ts-expect-error - !helpBtn.contains(event.relatedTarget)); + !elemContainsTarget(helpBtn, event.relatedTarget)); const settingsUnfocused = settingsBtn === null || (!settingsBtn.contains(document.activeElement) && - // @ts-expect-error - !settingsBtn.contains(event.relatedTarget)); + !elemContainsTarget(settingsBtn, event.relatedTarget)); if (helpUnfocused && settingsUnfocused) { window.hidePopoverMenus(); } @@ -340,8 +350,7 @@ const settingsButton = nonnull(getSettingsButton()); const settingsMenu = nonnull(document.getElementById("settings")); settingsButton.onclick = event => { - // @ts-expect-error - if (settingsMenu.contains(event.target)) { + if (elemContainsTarget(settingsMenu, event.target)) { return; } event.preventDefault(); |
