From bc14c37670fa655e8242057f17790a6c69efbb1f Mon Sep 17 00:00:00 2001 From: G30 <50341825+silentoplayz@users.noreply.github.com> Date: Thu, 5 Nov 2026 07:45:16 -0500 Subject: [PATCH] fix(a11y): sorting or paging a workspace or notes list keeps keyboard focus (#33743) --- src/lib/components/notes/Notes.svelte | 4 +--- src/lib/components/workspace/Knowledge.svelte | 4 +--- src/lib/components/workspace/Prompts.svelte | 7 +------ src/lib/components/workspace/Skills.svelte | 7 +------ 4 files changed, 4 insertions(+), 18 deletions(-) diff --git a/src/lib/components/notes/Notes.svelte b/src/lib/components/notes/Notes.svelte index 786d03dd9a..248ddf8291 100644 --- a/src/lib/components/notes/Notes.svelte +++ b/src/lib/components/notes/Notes.svelte @@ -159,8 +159,6 @@ const reset = () => { page = 1; - items = null; - total = null; allItemsLoaded = false; itemsLoading = false; notes = {}; @@ -230,7 +228,7 @@ allItemsLoaded = false; } - if (items) { + if (items && page > 1) { const existingIds = new Set(items.map((item) => item.id)); const newItems = pageItems.filter((item) => !existingIds.has(item.id)); items = [...items, ...newItems]; diff --git a/src/lib/components/workspace/Knowledge.svelte b/src/lib/components/workspace/Knowledge.svelte index 4930b5e6f0..874e5e5f23 100644 --- a/src/lib/components/workspace/Knowledge.svelte +++ b/src/lib/components/workspace/Knowledge.svelte @@ -131,8 +131,6 @@ const reset = () => { page = 1; - items = null; - total = null; allItemsLoaded = false; itemsLoading = false; }; @@ -184,7 +182,7 @@ allItemsLoaded = false; } - if (items) { + if (items && page > 1) { const existingIds = new Set(items.map((item) => item.id)); const newItems = pageItems.filter((item) => !existingIds.has(item.id)); items = [...items, ...newItems]; diff --git a/src/lib/components/workspace/Prompts.svelte b/src/lib/components/workspace/Prompts.svelte index 7b1f627c68..8742ab512e 100644 --- a/src/lib/components/workspace/Prompts.svelte +++ b/src/lib/components/workspace/Prompts.svelte @@ -81,7 +81,6 @@ let prompts = null; let tags = []; let total = null; - let loading = false; let showDeleteConfirm = false; let showCreateModal = false; @@ -139,7 +138,6 @@ const handleSearchInput = () => { searchController?.abort(); - loading = true; clearTimeout(searchDebounceTimer); searchDebounceTimer = setTimeout(() => { if (page !== 1) { @@ -187,7 +185,6 @@ searchController = new AbortController(); const { signal } = searchController; - loading = true; try { const res = await getPromptItems( localStorage.token, @@ -219,8 +216,6 @@ } } catch (err) { console.error(err); - } finally { - if (!signal.aborted) loading = false; } }; @@ -550,7 +545,7 @@ - {#if prompts === null || loading} + {#if prompts === null}
diff --git a/src/lib/components/workspace/Skills.svelte b/src/lib/components/workspace/Skills.svelte index 29ff9c3908..6825b6578d 100644 --- a/src/lib/components/workspace/Skills.svelte +++ b/src/lib/components/workspace/Skills.svelte @@ -109,7 +109,6 @@ let filteredItems = null; let total = null; - let loading = false; let tagsContainerElement: HTMLDivElement; let viewOption = ''; @@ -188,7 +187,6 @@ searchController = new AbortController(); const { signal } = searchController; - loading = true; try { const res = await getSkillItems( localStorage.token, @@ -212,14 +210,11 @@ } } catch (err) { console.error(err); - } finally { - if (!signal.aborted) loading = false; } }; const handleSearchInput = () => { searchController?.abort(); - loading = true; clearTimeout(searchDebounceTimer); searchDebounceTimer = setTimeout(() => { if (page !== 1) { @@ -465,7 +460,7 @@ - {#if filteredItems === null || loading} + {#if filteredItems === null}