diff --git a/src/lib/components/admin/Functions.svelte b/src/lib/components/admin/Functions.svelte
index 37922ad640..3e3e69f537 100644
--- a/src/lib/components/admin/Functions.svelte
+++ b/src/lib/components/admin/Functions.svelte
@@ -71,12 +71,12 @@
let functions = null;
let filteredItems = [];
- $: if (query !== undefined) {
+ const handleSearchInput = () => {
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
setFilteredItems();
}, 300);
- }
+ };
$: if (functions && selectedType !== undefined && viewOption !== undefined) {
setFilteredItems();
@@ -363,6 +363,7 @@
@@ -372,6 +373,7 @@
class="p-0.5 rounded-full hover:bg-gray-100 dark:hover:bg-gray-900 transition"
on:click={() => {
query = '';
+ handleSearchInput();
}}
>
diff --git a/src/lib/components/admin/Users/Groups/Users.svelte b/src/lib/components/admin/Users/Groups/Users.svelte
index ace5141a7f..b4e3c7d727 100644
--- a/src/lib/components/admin/Users/Groups/Users.svelte
+++ b/src/lib/components/admin/Users/Groups/Users.svelte
@@ -84,13 +84,16 @@
getUserList();
}
- $: if (query !== undefined) {
+ const handleSearchInput = () => {
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
- page = 1;
- getUserList();
+ if (page !== 1) {
+ page = 1;
+ } else {
+ getUserList();
+ }
}, 300);
- }
+ };
onDestroy(() => {
clearTimeout(searchDebounceTimer);
@@ -106,6 +109,7 @@
diff --git a/src/lib/components/admin/Users/UserList.svelte b/src/lib/components/admin/Users/UserList.svelte
index 40c7cffb07..2a536d56a5 100644
--- a/src/lib/components/admin/Users/UserList.svelte
+++ b/src/lib/components/admin/Users/UserList.svelte
@@ -100,13 +100,16 @@
}
};
- $: if (query !== undefined) {
+ const handleSearchInput = () => {
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
- page = 1;
- getUserList();
+ if (page !== 1) {
+ page = 1;
+ } else {
+ getUserList();
+ }
}, 300);
- }
+ };
$: if (page !== null && orderBy !== null && direction !== null) {
getUserList();
@@ -210,6 +213,7 @@
diff --git a/src/lib/components/channel/ChannelInfoModal/UserList.svelte b/src/lib/components/channel/ChannelInfoModal/UserList.svelte
index 80fc7cf45f..a72473ee82 100644
--- a/src/lib/components/channel/ChannelInfoModal/UserList.svelte
+++ b/src/lib/components/channel/ChannelInfoModal/UserList.svelte
@@ -78,13 +78,14 @@
}
};
- // Debounce only query changes
- $: if (query !== undefined && channel !== null) {
+ const handleSearchInput = () => {
+ if (channel === null) return;
+
clearTimeout(debounceTimer);
debounceTimer = setTimeout(() => {
getUserList();
}, 300);
- }
+ };
// Immediate response to page/sort changes
$: if (channel !== null && page && orderBy && direction) {
@@ -142,6 +143,7 @@
diff --git a/src/lib/components/notes/Notes.svelte b/src/lib/components/notes/Notes.svelte
index e7762cf258..64ffaee183 100644
--- a/src/lib/components/notes/Notes.svelte
+++ b/src/lib/components/notes/Notes.svelte
@@ -180,14 +180,14 @@
await getItemsPage();
};
- $: if (query !== undefined) {
+ const handleSearchInput = () => {
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
if (loaded) {
init();
}
}, 300);
- }
+ };
$: if (loaded && sortKey !== undefined && permission !== undefined && viewOption !== undefined) {
init();
@@ -380,6 +380,7 @@
@@ -389,6 +390,7 @@
class="p-0.5 rounded-full hover:bg-gray-100 dark:hover:bg-gray-900 transition"
on:click={() => {
query = '';
+ handleSearchInput();
}}
>
diff --git a/src/lib/components/workspace/Knowledge.svelte b/src/lib/components/workspace/Knowledge.svelte
index b2e1179124..b4c3488977 100644
--- a/src/lib/components/workspace/Knowledge.svelte
+++ b/src/lib/components/workspace/Knowledge.svelte
@@ -45,12 +45,12 @@
let allItemsLoaded = false;
let itemsLoading = false;
- $: if (query !== undefined) {
+ const handleSearchInput = () => {
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
init();
}, 300);
- }
+ };
onDestroy(() => {
clearTimeout(searchDebounceTimer);
@@ -199,6 +199,7 @@
@@ -209,6 +210,7 @@
aria-label={$i18n.t('Clear search')}
on:click={() => {
query = '';
+ handleSearchInput();
}}
>
diff --git a/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte b/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte
index 1cdadd05ce..82935f2080 100644
--- a/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte
+++ b/src/lib/components/workspace/Knowledge/KnowledgeBase.svelte
@@ -142,14 +142,17 @@
await getItemsPage();
};
- // Debounce only query changes
- $: if (query !== undefined) {
+ const handleSearchInput = () => {
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
- getItemsPage();
+ if (currentPage !== 1) {
+ currentPage = 1;
+ } else {
+ getItemsPage();
+ }
}, 300);
- }
+ };
// Immediate response to filter/pagination changes
$: if (
@@ -163,15 +166,6 @@
getItemsPage();
}
- $: if (
- query !== undefined &&
- viewOption !== undefined &&
- sortKey !== undefined &&
- direction !== undefined
- ) {
- reset();
- }
-
const getItemsPage = async () => {
if (knowledgeId === null) return;
@@ -1313,6 +1307,7 @@
{
diff --git a/src/lib/components/workspace/Models/Knowledge/KnowledgeSelector.svelte b/src/lib/components/workspace/Models/Knowledge/KnowledgeSelector.svelte
index 5677eae8c4..9e8d7d3d1e 100644
--- a/src/lib/components/workspace/Models/Knowledge/KnowledgeSelector.svelte
+++ b/src/lib/components/workspace/Models/Knowledge/KnowledgeSelector.svelte
@@ -34,12 +34,12 @@
$: items = [...noteItems, ...knowledgeItems, ...fileItems];
- $: if (query !== undefined) {
+ const handleSearchInput = () => {
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
getItems();
}, 300);
- }
+ };
onDestroy(() => {
clearTimeout(searchDebounceTimer);
@@ -111,6 +111,7 @@
if (e.detail === false) {
onClose();
query = '';
+ handleSearchInput();
}
}}
>
@@ -128,6 +129,7 @@
diff --git a/src/lib/components/workspace/Prompts.svelte b/src/lib/components/workspace/Prompts.svelte
index 7974ee8ed3..f9deed219c 100644
--- a/src/lib/components/workspace/Prompts.svelte
+++ b/src/lib/components/workspace/Prompts.svelte
@@ -59,15 +59,17 @@
let page = 1;
- // Debounce only query changes
- $: if (query !== undefined) {
+ const handleSearchInput = () => {
loading = true;
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
- page = 1;
- getPromptList();
+ if (page !== 1) {
+ page = 1;
+ } else {
+ getPromptList();
+ }
}, 300);
- }
+ };
// Immediate response to page/filter changes
$: if (page && selectedTag !== undefined && viewOption !== undefined) {
@@ -332,6 +334,7 @@
@@ -343,6 +346,7 @@
aria-label={$i18n.t('Clear search')}
on:click={() => {
query = '';
+ handleSearchInput();
}}
>
diff --git a/src/lib/components/workspace/Skills.svelte b/src/lib/components/workspace/Skills.svelte
index 96ab15a49b..ffb9b534af 100644
--- a/src/lib/components/workspace/Skills.svelte
+++ b/src/lib/components/workspace/Skills.svelte
@@ -78,15 +78,17 @@
}
};
- // Debounce only query changes
- $: if (query !== undefined) {
+ const handleSearchInput = () => {
loading = true;
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
- page = 1;
- loadSkillItems();
+ if (page !== 1) {
+ page = 1;
+ } else {
+ loadSkillItems();
+ }
}, 300);
- }
+ };
// Immediate response to page/filter changes
$: if (page && viewOption !== undefined) {
@@ -321,6 +323,7 @@
@@ -331,6 +334,7 @@
aria-label={$i18n.t('Clear search')}
on:click={() => {
query = '';
+ handleSearchInput();
}}
>
diff --git a/src/lib/components/workspace/Tools.svelte b/src/lib/components/workspace/Tools.svelte
index 50462c1cb4..d68a32211d 100644
--- a/src/lib/components/workspace/Tools.svelte
+++ b/src/lib/components/workspace/Tools.svelte
@@ -63,12 +63,12 @@
let showImportModal = false;
- $: if (query !== undefined) {
+ const handleSearchInput = () => {
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
setFilteredItems();
}, 300);
- }
+ };
$: if (tools && viewOption !== undefined) {
setFilteredItems();
@@ -325,6 +325,7 @@
@@ -335,6 +336,7 @@
aria-label={$i18n.t('Clear search')}
on:click={() => {
query = '';
+ handleSearchInput();
}}
>
diff --git a/src/lib/components/workspace/common/MemberSelector.svelte b/src/lib/components/workspace/common/MemberSelector.svelte
index f4acad13f7..26ed4c4b9a 100644
--- a/src/lib/components/workspace/common/MemberSelector.svelte
+++ b/src/lib/components/workspace/common/MemberSelector.svelte
@@ -63,12 +63,12 @@
}
};
- $: if (query !== undefined) {
+ const handleSearchInput = () => {
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
getUserList();
}, 300);
- }
+ };
onDestroy(() => {
clearTimeout(searchDebounceTimer);
@@ -187,6 +187,7 @@
diff --git a/src/routes/(app)/automations/+page.svelte b/src/routes/(app)/automations/+page.svelte
index 0fef27bd3e..7ef8246eb4 100644
--- a/src/routes/(app)/automations/+page.svelte
+++ b/src/routes/(app)/automations/+page.svelte
@@ -50,15 +50,19 @@
let page = 1;
- // Debounce only query changes (gate behind loaded to prevent double-fetch on mount)
- $: if (loaded && query !== undefined) {
+ const handleSearchInput = () => {
+ if (!loaded) return;
+
loading = true;
clearTimeout(searchDebounceTimer);
searchDebounceTimer = setTimeout(() => {
- page = 1;
- getAutomationList();
+ if (page !== 1) {
+ page = 1;
+ } else {
+ getAutomationList();
+ }
}, 300);
- }
+ };
// Immediate response to page/filter changes (gate behind loaded)
$: if (loaded && page && statusFilter !== undefined) {
@@ -296,6 +300,7 @@
{
query = '';
+ handleSearchInput();
}}
>