diff --git a/src/routes/(app)/config/chords/+page.svelte b/src/routes/(app)/config/chords/+page.svelte index 5a50620d..0143a90b 100644 --- a/src/routes/(app)/config/chords/+page.svelte +++ b/src/routes/(app)/config/chords/+page.svelte @@ -183,9 +183,11 @@ } const searchFilter = writable(undefined); + let currentSearchQuery = $state(""); async function search(index: FlexSearch.Index, event: Event) { const query = (event.target as HTMLInputElement).value; + currentSearchQuery = query; searchFilter.set( query && searchIndex ? ((await index.searchAsync(query)) as number[]) @@ -194,6 +196,13 @@ page = 0; } + // Re-run search when chords change to fix stale indices + $effect(() => { + if (currentSearchQuery && $searchIndex) { + search($searchIndex, { target: { value: currentSearchQuery } } as any); + } + }); + function insertChord(actions: number[]) { const id = JSON.stringify(actions); if ($chords.some((it) => JSON.stringify(it.actions) === id)) { @@ -273,6 +282,7 @@ $searchIndex && search($searchIndex, event)} class:loading={progress !== $chords.length} />