9
9
import { SortDescriptor } from "@nextui-org/react" ;
10
10
import { invoke } from "@tauri-apps/api/tauri" ;
11
11
import { useEffect , useState } from "react" ;
12
+ import { useDebounce } from "use-debounce" ;
12
13
13
14
type FetchProcessesParams = {
14
15
sortDescriptor : SortDescriptor ,
@@ -20,6 +21,8 @@ export const useProcesses = () => {
20
21
const [ filterText , setFilterText ] = useState < string > ( "" ) ;
21
22
const [ sortDescriptor , setSortDescriptor ] = useState < SortDescriptor > ( { column : "memoryUsage" , direction : "descending" } ) ;
22
23
24
+ const [ filterTextVal ] = useDebounce ( filterText , 1000 ) ;
25
+
23
26
const fetchProcesses = async ( { filterText, sortDescriptor } : FetchProcessesParams ) => {
24
27
console . log ( "Fetcing processes..." ) ;
25
28
const processes : Process [ ] = await invoke ( 'get_processes' , { sortDescriptor, filterText } ) ;
@@ -34,12 +37,12 @@ export const useProcesses = () => {
34
37
useEffect ( ( ) => {
35
38
const interval = setInterval ( ( ) => {
36
39
console . log ( "Fetching processes..." ) ;
37
- fetchProcesses ( { sortDescriptor, filterText : filterText . trim ( ) . length === 0 ? null : filterText } )
40
+ fetchProcesses ( { sortDescriptor, filterText : filterTextVal . trim ( ) . length === 0 ? null : filterTextVal } )
38
41
. then ( setProcesses ) ;
39
42
} , 1000 ) ;
40
43
41
44
return ( ) => clearInterval ( interval )
42
- } , [ filterText , sortDescriptor ] ) ;
45
+ } , [ filterTextVal , sortDescriptor ] ) ;
43
46
44
- return { processes, filterText, setFilterText, sortDescriptor, setSortDescriptor, killProcess } ;
47
+ return { processes, filterText : filterTextVal , setFilterText, sortDescriptor, setSortDescriptor, killProcess } ;
45
48
}
0 commit comments