From c9f3677bd45d636e635a9d2fd8833f92f1cca97f Mon Sep 17 00:00:00 2001 From: MareStare Date: Wed, 12 Mar 2025 00:54:48 +0000 Subject: [PATCH] Move hideIf to utils and refactor a bit --- assets/js/settings.ts | 23 ++++++++--------------- assets/js/utils/dom.ts | 8 ++++++++ 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/assets/js/settings.ts b/assets/js/settings.ts index 9bad96c8..772e4b76 100644 --- a/assets/js/settings.ts +++ b/assets/js/settings.ts @@ -3,7 +3,7 @@ */ import { assertNotNull, assertNotUndefined } from './utils/assert'; -import { $, $$ } from './utils/dom'; +import { $, $$, hideIf } from './utils/dom'; import store from './utils/store'; function setupThemeSettings() { @@ -28,26 +28,19 @@ function setupThemeSettings() { themeColorSelect.addEventListener('change', themePreviewCallback); } -function hideIf(element: HTMLElement, condition: boolean) { - if (condition) { - element.classList.add('hidden'); - } else { - element.classList.remove('hidden'); - } -} - function setupAutocompleteSettings() { const autocompleteSettings = assertNotNull($('.autocomplete-settings')); + const autocompleteSearchHistorySettings = assertNotNull($('.autocomplete-search-history-settings')); + const enableSearchAutocomplete = assertNotNull($('#user_enable_search_ac')); + const userSearchHistoryHidden = assertNotNull($('#user_autocomplete_search_history_hidden')); // Don't show search history settings if autocomplete is entirely disabled. - assertNotNull($('#user_enable_search_ac')).addEventListener('change', event => { - hideIf(autocompleteSettings, !(event.target as HTMLInputElement).checked); + enableSearchAutocomplete.addEventListener('change', () => { + hideIf(!enableSearchAutocomplete.checked, autocompleteSettings); }); - const autocompleteSearchHistorySettings = assertNotNull($('.autocomplete-search-history-settings')); - - assertNotNull($('#user_autocomplete_search_history_hidden')).addEventListener('change', event => { - hideIf(autocompleteSearchHistorySettings, (event.target as HTMLInputElement).checked); + userSearchHistoryHidden.addEventListener('change', () => { + hideIf(userSearchHistoryHidden.checked, autocompleteSearchHistorySettings); }); } diff --git a/assets/js/utils/dom.ts b/assets/js/utils/dom.ts index 220dc9e4..9f10726a 100644 --- a/assets/js/utils/dom.ts +++ b/assets/js/utils/dom.ts @@ -110,3 +110,11 @@ export function escapeCss(css: string): string { export function findFirstTextNode(of: Node): N { return Array.prototype.filter.call(of.childNodes, el => el.nodeType === Node.TEXT_NODE)[0]; } + +export function hideIf(condition: boolean, element: HTMLElement) { + if (condition) { + element.classList.add('hidden'); + } else { + element.classList.remove('hidden'); + } +}