From 6f9479f697efe608dcd14717f28b71728d8a58d1 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Fri, 19 Sep 2025 13:59:55 -0700 Subject: [PATCH] Fix double load --- .../database/DatabaseGridWithProvider.svelte | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/lib/components/database/DatabaseGridWithProvider.svelte b/src/lib/components/database/DatabaseGridWithProvider.svelte index 2af248c8..3bfead42 100644 --- a/src/lib/components/database/DatabaseGridWithProvider.svelte +++ b/src/lib/components/database/DatabaseGridWithProvider.svelte @@ -26,6 +26,7 @@ let totalPages = $state(1) let total = $state(0) let searchTerm = $state('') + let lastSearchTerm = $state('') let pageSize = $state(initialPageSize) let searchTimeout: ReturnType | undefined @@ -109,11 +110,27 @@ clearTimeout(searchTimeout) } - // Set new timeout for debounced search + const trimmed = term.trim() + + // Avoid triggering a fetch on initial mount when search is empty + // Only clear search and reload if we previously had a non-empty query + if (trimmed.length < 2) { + if (lastSearchTerm !== '') { + searchTimeout = setTimeout(() => { + provider.clearSearch() + lastSearchTerm = '' + loadData(1) + }, 300) + } + return + } + + // Debounced search when user has typed enough characters searchTimeout = setTimeout(() => { - provider.setSearchQuery(term) + lastSearchTerm = trimmed + provider.setSearchQuery(trimmed) loadData(1) // Reset to first page when searching - }, 300) // 300ms debounce + }, 300) } // Watch for search term changes