File tree Expand file tree Collapse file tree 1 file changed +12
-4
lines changed
src/modules/GroupChannel/components/Message Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Original file line number Diff line number Diff 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 ) ;
You can’t perform that action at this time.
0 commit comments