perf(web): debounce server and large-list searches (#6727)

This commit is contained in:
Seefs
2026-08-10 12:47:55 +08:00
committed by GitHub
parent 5d3423bec1
commit 7dd1000a19
10 changed files with 45 additions and 18 deletions
@@ -19,6 +19,8 @@ For commercial licensing, please contact support@quantumnous.com
import { useSearch } from '@tanstack/react-router'
import { useMemo, useCallback, useState } from 'react'
import { useDebounce } from '@/hooks/use-debounce'
import {
FILTER_ALL,
SORT_OPTIONS,
@@ -67,6 +69,7 @@ export function useFilters(models: PricingModel[]) {
}))
const searchInput = filterState.search || ''
const debouncedSearchInput = useDebounce(searchInput, 200)
const sortBy = filterState.sort || SORT_OPTIONS.NAME
const vendorFilter = filterState.vendor || FILTER_ALL
const groupFilter = filterState.group || FILTER_ALL
@@ -147,7 +150,7 @@ export function useFilters(models: PricingModel[]) {
if (!models || models.length === 0) return []
return filterAndSortModels(models, {
search: searchInput,
search: debouncedSearchInput,
vendor: vendorFilter,
group: groupFilter,
quotaType: quotaTypeFilter,
@@ -157,7 +160,7 @@ export function useFilters(models: PricingModel[]) {
})
}, [
models,
searchInput,
debouncedSearchInput,
vendorFilter,
groupFilter,
quotaTypeFilter,