@@ -389,6 +389,7 @@ const MessageFlashListWithContext = (props: MessageFlashListPropsWithContext) =>
389389 return {
390390 animateAutoscrollToBottom : true ,
391391 autoscrollToBottomThreshold : autoscrollToRecent ? 1 : undefined ,
392+ disabled : ! autoscrollToRecent ,
392393 startRenderingFromBottom : true ,
393394 } ;
394395 } , [ autoscrollToRecent ] ) ;
@@ -412,7 +413,6 @@ const MessageFlashListWithContext = (props: MessageFlashListPropsWithContext) =>
412413 ( message ) => message ?. id === targetedMessage ,
413414 ) ;
414415
415- setAutoscrollToRecent ( false ) ;
416416 // the message we want to scroll to has not been loaded in the state yet
417417 if ( indexOfParentInMessageList === - 1 ) {
418418 loadChannelAroundMessage ( { messageId : targetedMessage , setTargetedMessage } ) ;
@@ -426,9 +426,8 @@ const MessageFlashListWithContext = (props: MessageFlashListPropsWithContext) =>
426426 index : indexOfParentInMessageList ,
427427 viewPosition : 0.5 ,
428428 } ) ;
429- setAutoscrollToRecent ( true ) ;
430429 setTargetedMessage ( undefined ) ;
431- } , 100 ) ;
430+ } , WAIT_FOR_SCROLL_TIMEOUT ) ;
432431 }
433432 } , [ loadChannelAroundMessage , processedMessageList , setTargetedMessage , targetedMessage ] ) ;
434433
@@ -491,8 +490,11 @@ const MessageFlashListWithContext = (props: MessageFlashListPropsWithContext) =>
491490 if ( notLatestSet ) {
492491 latestNonCurrentMessageBeforeUpdateRef . current =
493492 channel . state . latestMessages [ channel . state . latestMessages . length - 1 ] ;
493+ setAutoscrollToRecent ( false ) ;
494494 setScrollToBottomButtonVisible ( true ) ;
495495 return ;
496+ } else {
497+ setAutoscrollToRecent ( true ) ;
496498 }
497499 const latestNonCurrentMessageBeforeUpdate = latestNonCurrentMessageBeforeUpdateRef . current ;
498500 latestNonCurrentMessageBeforeUpdateRef . current = undefined ;
0 commit comments