From c653a1b9f4346cdf11545960fac1e99e5357e6d9 Mon Sep 17 00:00:00 2001 From: martincupela Date: Fri, 26 Sep 2025 16:09:13 +0200 Subject: [PATCH] fix(ChannelPreview): call getLatestMessagePreview on every relevant WS event --- .../ChannelPreview/ChannelPreview.tsx | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/components/ChannelPreview/ChannelPreview.tsx b/src/components/ChannelPreview/ChannelPreview.tsx index 154d06164..317ef2ade 100644 --- a/src/components/ChannelPreview/ChannelPreview.tsx +++ b/src/components/ChannelPreview/ChannelPreview.tsx @@ -88,6 +88,10 @@ export const ChannelPreview = (props: ChannelPreviewProps) => { const [lastMessage, setLastMessage] = useState( channel.state.messages[channel.state.messages.length - 1], ); + const [latestMessagePreview, setLatestMessagePreview] = useState(() => + getLatestMessagePreview(channel, t, userLanguage, isMessageAIGenerated), + ); + const [unread, setUnread] = useState(0); const { messageDeliveryStatus } = useMessageDeliveryStatus({ channel, @@ -134,6 +138,9 @@ export const ChannelPreview = (props: ChannelPreviewProps) => { useEffect(() => { refreshUnreadCount(); + setLatestMessagePreview( + getLatestMessagePreview(channel, t, userLanguage, isMessageAIGenerated), + ); const handleEvent = (event: Event) => { const deletedMessagesInAnotherChannel = @@ -144,6 +151,9 @@ export const ChannelPreview = (props: ChannelPreviewProps) => { setLastMessage( channel.state.latestMessages[channel.state.latestMessages.length - 1], ); + setLatestMessagePreview( + getLatestMessagePreview(channel, t, userLanguage, isMessageAIGenerated), + ); refreshUnreadCount(); }; @@ -162,16 +172,18 @@ export const ChannelPreview = (props: ChannelPreviewProps) => { channel.off('message.undeleted', handleEvent); channel.off('channel.truncated', handleEvent); }; - }, [channel, client, refreshUnreadCount, channelUpdateCount]); - - if (!Preview) return null; - - const latestMessagePreview = getLatestMessagePreview( + }, [ channel, + client, + refreshUnreadCount, + channelUpdateCount, + getLatestMessagePreview, t, userLanguage, isMessageAIGenerated, - ); + ]); + + if (!Preview) return null; return (