Skip to content

Commit b5f91d5

Browse files
authored
fix: scroll view when message height changed with suggested replies (#1087)
- Fix scroll bottom not working properly when last message is updated with suggested replies ticket: [AC-2222]
1 parent d3eadd5 commit b5f91d5

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/modules/GroupChannel/components/Message/MessageView.tsx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,18 +196,26 @@ const MessageView = (props: MessageViewProps) => {
196196
);
197197
}, [mentionedUserIds]);
198198

199-
/**
200-
* Move the message list scroll
201-
* when the message's height is changed by `showEdit` OR `message.reactions`
202-
*/
199+
// Side effect: scroll position update when showEdit is toggled or reactions updated
203200
useDidMountEffect(() => {
204201
handleScroll?.();
205202
}, [showEdit, message?.reactions?.length]);
206203

204+
// Side effect: scroll position update when message updated
207205
useDidMountEffect(() => {
208206
handleScroll?.(true);
209207
}, [message?.updatedAt, (message as UserMessage)?.message]);
210208

209+
// Side effect: scroll position update when suggested replies are rendered or hidden
210+
const prevShouldRenderSuggestedReplies = useRef(shouldRenderSuggestedReplies);
211+
useEffect(() => {
212+
if (prevShouldRenderSuggestedReplies.current !== shouldRenderSuggestedReplies) {
213+
handleScroll?.();
214+
} else {
215+
prevShouldRenderSuggestedReplies.current = shouldRenderSuggestedReplies;
216+
}
217+
}, [shouldRenderSuggestedReplies]);
218+
211219
useLayoutEffect(() => {
212220
// Keep the scrollBottom value after fetching new message list (but GroupChannel module is not needed.)
213221
if (usedInLegacy) handleScroll?.(true);

0 commit comments

Comments
 (0)