Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions src/modules/GroupChannel/components/Message/MessageView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -196,18 +196,26 @@ const MessageView = (props: MessageViewProps) => {
);
}, [mentionedUserIds]);

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

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

// Side effect: scroll position update when suggested replies are rendered or hidden
const prevShouldRenderSuggestedReplies = useRef(shouldRenderSuggestedReplies);
useEffect(() => {
if (prevShouldRenderSuggestedReplies.current !== shouldRenderSuggestedReplies) {
handleScroll?.();
} else {
prevShouldRenderSuggestedReplies.current = shouldRenderSuggestedReplies;
}
}, [shouldRenderSuggestedReplies]);

useLayoutEffect(() => {
// Keep the scrollBottom value after fetching new message list (but GroupChannel module is not needed.)
if (usedInLegacy) handleScroll?.(true);
Expand Down