Fix double load
This commit is contained in:
parent
a642cdd857
commit
6f9479f697
1 changed files with 20 additions and 3 deletions
|
|
@ -26,6 +26,7 @@
|
||||||
let totalPages = $state(1)
|
let totalPages = $state(1)
|
||||||
let total = $state(0)
|
let total = $state(0)
|
||||||
let searchTerm = $state('')
|
let searchTerm = $state('')
|
||||||
|
let lastSearchTerm = $state('')
|
||||||
let pageSize = $state(initialPageSize)
|
let pageSize = $state(initialPageSize)
|
||||||
let searchTimeout: ReturnType<typeof setTimeout> | undefined
|
let searchTimeout: ReturnType<typeof setTimeout> | undefined
|
||||||
|
|
||||||
|
|
@ -109,11 +110,27 @@
|
||||||
clearTimeout(searchTimeout)
|
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(() => {
|
searchTimeout = setTimeout(() => {
|
||||||
provider.setSearchQuery(term)
|
lastSearchTerm = trimmed
|
||||||
|
provider.setSearchQuery(trimmed)
|
||||||
loadData(1) // Reset to first page when searching
|
loadData(1) // Reset to first page when searching
|
||||||
}, 300) // 300ms debounce
|
}, 300)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Watch for search term changes
|
// Watch for search term changes
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue