@@ -9,8 +9,11 @@ import {
99 selectPanelPageSize ,
1010 selectPanelSorting
1111} from "@/features/ui/panelRegistry"
12+ import { useDebouncedValue } from "@mantine/hooks"
1213import { useEffect } from "react"
1314
15+ const DEBOUNCE_WAIT_TIME_MS = 600 // miliseconds
16+
1417export 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