diff --git a/src/components/Channel/Channel.tsx b/src/components/Channel/Channel.tsx index 525a3756c8..23d0c4c63a 100644 --- a/src/components/Channel/Channel.tsx +++ b/src/components/Channel/Channel.tsx @@ -524,6 +524,8 @@ const ChannelInner = < return queryResponse.messages.length; }; + const clearHighlightedMessageTimeoutId = useRef | null>(null); + const jumpToMessage = async (messageId: string, messageLimit = 100) => { dispatch({ loadingMore: true, type: 'setLoadingMore' }); await channel.state.loadMessageIntoState(messageId, undefined, messageLimit); @@ -542,7 +544,12 @@ const ChannelInner = < type: 'jumpToMessageFinished', }); - setTimeout(() => { + if (clearHighlightedMessageTimeoutId.current) { + clearTimeout(clearHighlightedMessageTimeoutId.current); + } + + clearHighlightedMessageTimeoutId.current = setTimeout(() => { + clearHighlightedMessageTimeoutId.current = null; dispatch({ type: 'clearHighlightedMessage' }); }, 500); };