Skip to content

Commit 8bb4e76

Browse files
authored
add search filter debouncing (#1086)
1 parent fc91a93 commit 8bb4e76

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

frontend/apps/ui/src/features/documentsList/hooks/useDocumentsListTable.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,11 @@ import {
99
selectPanelPageSize,
1010
selectPanelSorting
1111
} from "@/features/ui/panelRegistry"
12+
import {useDebouncedValue} from "@mantine/hooks"
1213
import {useEffect} from "react"
1314

15+
const DEBOUNCE_WAIT_TIME_MS = 600 // miliseconds
16+
1417
export default function useDocumentsListTable() {
1518
const {panelId} = usePanel()
1619
const dispatch = useAppDispatch()
@@ -27,19 +30,25 @@ export default function useDocumentsListTable() {
2730
const [searchDocuments, {data, isLoading, isError, error}] =
2831
useSearchDocumentsMutation()
2932

33+
const [debouncedSearchTokens] = useDebouncedValue(
34+
searchTokens,
35+
DEBOUNCE_WAIT_TIME_MS,
36+
{leading: true}
37+
)
38+
3039
// Trigger search when tokens change or pagination changes
3140
useEffect(() => {
3241
// Build search params from tokens
3342
const searchParams: SearchQueryParams = buildSearchQueryParams({
34-
tokens: searchTokens,
43+
tokens: debouncedSearchTokens,
3544
pageNumber,
3645
pageSize,
3746
sorting
3847
})
3948

4049
// Execute search
4150
searchDocuments(searchParams)
42-
}, [searchTokens, pageNumber, pageSize, sorting])
51+
}, [debouncedSearchTokens, pageNumber, pageSize, sorting])
4352

4453
// Update document_type_id when data changes
4554
useEffect(() => {

0 commit comments

Comments
 (0)