From 3dff89fda5949d6c594952745855edbde1f8115a Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Thu, 1 Jul 2021 20:26:41 +0200 Subject: [PATCH] Switch WithAutocomplete to WithDropdown and fix SelectedTagBadge --- ts/components/WithDropdown.svelte | 16 +++++-- ts/components/WithDropdownMenu.svelte | 60 --------------------------- ts/editor/SelectedTagBadge.svelte | 16 +++---- ts/editor/TagEditor.svelte | 22 ++++------ ts/editor/WithAutocomplete.svelte | 22 +++++----- 5 files changed, 37 insertions(+), 99 deletions(-) delete mode 100644 ts/components/WithDropdownMenu.svelte diff --git a/ts/components/WithDropdown.svelte b/ts/components/WithDropdown.svelte index cf14700f5..337072dc7 100644 --- a/ts/components/WithDropdown.svelte +++ b/ts/components/WithDropdown.svelte @@ -19,12 +19,19 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html }); let dropdown: Dropdown; - let dropdownObject: Dropdown; + let api: Dropdown & { isVisible: () => boolean }; + + function isVisible() { + return (dropdown as any)._menu + ? (dropdown as any)._menu.classList.contains("show") + : false; + } const noop = () => {}; function createDropdown(toggle: HTMLElement): Dropdown { /* avoid focusing element toggle on menu activation */ toggle.focus = noop; + dropdown = new Dropdown(toggle, { autoClose, popperConfig: (defaultConfig: Record) => ({ @@ -37,22 +44,23 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html dropdown.show(); } - dropdownObject = { + let api = { show: dropdown.show.bind(dropdown), toggle: dropdown.toggle.bind(dropdown), hide: dropdown.hide.bind(dropdown), update: dropdown.update.bind(dropdown), dispose: dropdown.dispose.bind(dropdown), + isVisible, }; - return dropdownObject; + return api; } onDestroy(() => dropdown?.dispose());