diff --git a/ts/components/WithDropdown.svelte b/ts/components/WithDropdown.svelte index 801fbae23..11bdff492 100644 --- a/ts/components/WithDropdown.svelte +++ b/ts/components/WithDropdown.svelte @@ -11,10 +11,19 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html export let autoOpen = false; export let autoClose: boolean | "inside" | "outside" = true; - export let placement = "bottom-start"; export let toggleOpen = true; export let drop: "down" | "up" | "left" | "right" = "down"; + let placement: string; + $: switch (drop) { + case "down": + placement = "bottom"; + break; + case "up": + placement = "top"; + break; + } + $: dropClass = `drop${drop}`; setContext(dropdownKey, { diff --git a/ts/editor/TagEditor.svelte b/ts/editor/TagEditor.svelte index 7574a1c95..74ac7f070 100644 --- a/ts/editor/TagEditor.svelte +++ b/ts/editor/TagEditor.svelte @@ -62,7 +62,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } function updateSuggestions(): void { - suggestionsPromise = fetchSuggestions(activeName).then( + const activeTag = tags[active!]; + + suggestionsPromise = fetchSuggestions(activeTag.name).then( (names: string[]): string[] => names.map(replaceWithUnicodeSeparator) ); } @@ -74,11 +76,14 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html activeInput.setSelectionRange(Infinity, Infinity); } - function updateTagName(tag: TagType): void { + async function updateTagName(tag: TagType): Promise { tag.name = activeName; tags = tags; - autocomplete.update(); + await tick(); + if (activeInput) { + autocomplete.update(); + } } function setActiveAfterBlur(value: number): void {