1
1
import { useCallback } from 'react' ;
2
- import debounce from 'lodash.debounce ' ;
2
+ import throttle from 'lodash.throttle ' ;
3
3
4
4
import { SearchLocalUserParams , searchLocalUsers } from './utils' ;
5
5
@@ -25,7 +25,7 @@ export type UserTriggerParams<
25
25
useMentionsTransliteration ?: boolean ;
26
26
} ;
27
27
28
- const DEBOUNCE_DELAY = 200 ;
28
+ const THROTTLE_DELAY = 500 ;
29
29
30
30
export const useUserTrigger = <
31
31
StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics
@@ -63,8 +63,8 @@ export const useUserTrigger = <
63
63
return Object . values ( uniqueUsers ) ;
64
64
} , [ members , watchers ] ) ;
65
65
66
- const queryMembersDebounced = useCallback (
67
- debounce (
66
+ const queryMembersThrottled = useCallback (
67
+ throttle (
68
68
async ( query : string , onReady : ( users : UserResponse < StreamChatGenerics > [ ] ) => void ) => {
69
69
try {
70
70
// @ts -expect-error
@@ -85,13 +85,14 @@ export const useUserTrigger = <
85
85
console . log ( { error } ) ;
86
86
}
87
87
} ,
88
- DEBOUNCE_DELAY ,
88
+ THROTTLE_DELAY ,
89
+ { leading : true , trailing : true } ,
89
90
) ,
90
91
[ channel ] ,
91
92
) ;
92
93
93
- const queryUsersDebounced = useCallback (
94
- debounce (
94
+ const queryUsersThrottled = useCallback (
95
+ throttle (
95
96
async ( query : string , onReady : ( users : UserResponse < StreamChatGenerics > [ ] ) => void ) => {
96
97
if ( ! query ) return ;
97
98
@@ -114,7 +115,8 @@ export const useUserTrigger = <
114
115
console . log ( { error } ) ;
115
116
}
116
117
} ,
117
- DEBOUNCE_DELAY ,
118
+ THROTTLE_DELAY ,
119
+ { leading : true , trailing : true } ,
118
120
) ,
119
121
[ client , mentionQueryParams ] ,
120
122
) ;
@@ -138,7 +140,7 @@ export const useUserTrigger = <
138
140
if ( disableMentions ) return ;
139
141
140
142
if ( mentionAllAppUsers ) {
141
- return queryUsersDebounced ( query , ( data : UserResponse < StreamChatGenerics > [ ] ) =>
143
+ return queryUsersThrottled ( query , ( data : UserResponse < StreamChatGenerics > [ ] ) =>
142
144
onReady ?.( filterMutes ( data , text ) , query ) ,
143
145
) ;
144
146
}
@@ -168,7 +170,7 @@ export const useUserTrigger = <
168
170
return onReady ?.( filterMutes ( data , text ) , query ) ;
169
171
}
170
172
171
- queryMembersDebounced ( query , ( data : UserResponse < StreamChatGenerics > [ ] ) =>
173
+ queryMembersThrottled ( query , ( data : UserResponse < StreamChatGenerics > [ ] ) =>
172
174
onReady ?.( filterMutes ( data , text ) , query ) ,
173
175
) ;
174
176
} ,
0 commit comments