From 376d7b7a6841f92f55b746a53667fd1be978581e Mon Sep 17 00:00:00 2001 From: Anton Arnautov Date: Wed, 13 Dec 2023 15:30:35 +0100 Subject: [PATCH] Change mechanism back to throttle, increase delay --- .../MessageInput/hooks/useUserTrigger.ts | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/components/MessageInput/hooks/useUserTrigger.ts b/src/components/MessageInput/hooks/useUserTrigger.ts index b8c712ab2..ff66cf32b 100644 --- a/src/components/MessageInput/hooks/useUserTrigger.ts +++ b/src/components/MessageInput/hooks/useUserTrigger.ts @@ -1,5 +1,5 @@ import { useCallback } from 'react'; -import debounce from 'lodash.debounce'; +import throttle from 'lodash.throttle'; import { SearchLocalUserParams, searchLocalUsers } from './utils'; @@ -25,7 +25,7 @@ export type UserTriggerParams< useMentionsTransliteration?: boolean; }; -const DEBOUNCE_DELAY = 200; +const THROTTLE_DELAY = 500; export const useUserTrigger = < StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics @@ -63,8 +63,8 @@ export const useUserTrigger = < return Object.values(uniqueUsers); }, [members, watchers]); - const queryMembersDebounced = useCallback( - debounce( + const queryMembersThrottled = useCallback( + throttle( async (query: string, onReady: (users: UserResponse[]) => void) => { try { // @ts-expect-error @@ -85,13 +85,14 @@ export const useUserTrigger = < console.log({ error }); } }, - DEBOUNCE_DELAY, + THROTTLE_DELAY, + { leading: true, trailing: true }, ), [channel], ); - const queryUsersDebounced = useCallback( - debounce( + const queryUsersThrottled = useCallback( + throttle( async (query: string, onReady: (users: UserResponse[]) => void) => { if (!query) return; @@ -114,7 +115,8 @@ export const useUserTrigger = < console.log({ error }); } }, - DEBOUNCE_DELAY, + THROTTLE_DELAY, + { leading: true, trailing: true }, ), [client, mentionQueryParams], ); @@ -138,7 +140,7 @@ export const useUserTrigger = < if (disableMentions) return; if (mentionAllAppUsers) { - return queryUsersDebounced(query, (data: UserResponse[]) => + return queryUsersThrottled(query, (data: UserResponse[]) => onReady?.(filterMutes(data, text), query), ); } @@ -168,7 +170,7 @@ export const useUserTrigger = < return onReady?.(filterMutes(data, text), query); } - queryMembersDebounced(query, (data: UserResponse[]) => + queryMembersThrottled(query, (data: UserResponse[]) => onReady?.(filterMutes(data, text), query), ); },