From 488a1b1981eeecedb5d26b22dff581f6cf9a5338 Mon Sep 17 00:00:00 2001 From: Petyo Ivanov Date: Thu, 8 Sep 2022 13:12:31 +0300 Subject: [PATCH] fix: avoid race condition crash in jumping --- src/components/Channel/Channel.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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); };