From c5ba44cfe5927e5690a8664fed652b15f262bdb2 Mon Sep 17 00:00:00 2001 From: ltctceplrm <14954927+ltctceplrm@users.noreply.github.com> Date: Tue, 6 Feb 2024 20:46:56 +0100 Subject: [PATCH] Modified the toggles so only one can be on at a time --- src/modals/MediaDbSearchModal.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/modals/MediaDbSearchModal.ts b/src/modals/MediaDbSearchModal.ts index b4c89a9..85b4ff8 100644 --- a/src/modals/MediaDbSearchModal.ts +++ b/src/modals/MediaDbSearchModal.ts @@ -76,6 +76,9 @@ export class MediaDbSearchModal extends Modal { const placeholder = 'Search by title'; const searchComponent = new TextComponent(contentEl); + const toggleComponents = []; + let currentToggle: ToggleComponent = null; + searchComponent.inputEl.style.width = '100%'; searchComponent.setPlaceholder(placeholder); searchComponent.setValue(this.query); @@ -99,10 +102,17 @@ export class MediaDbSearchModal extends Modal { const apiToggleComponent = new ToggleComponent(apiToggleComponentWrapper); apiToggleComponent.setTooltip(unCamelCase(mediaType)); apiToggleComponent.setValue(this.selectedTypes.find(x => x.name === mediaType).selected); + if (apiToggleComponent.getValue()) { + currentToggle = apiToggleComponent; + } apiToggleComponent.onChange(value => { - this.selectedTypes.find(x => x.name === mediaType).selected = value; + if (currentToggle && currentToggle !== apiToggleComponent) { + currentToggle.setValue(false); + } + currentToggle = value ? apiToggleComponent : null; }); apiToggleComponentWrapper.appendChild(apiToggleComponent.toggleEl); + toggleComponents.push(apiToggleComponent); } contentEl.createDiv({ cls: 'media-db-plugin-spacer' }); @@ -129,4 +139,4 @@ export class MediaDbSearchModal extends Modal { const { contentEl } = this; contentEl.empty(); } -} +} \ No newline at end of file