@@ -400,8 +400,9 @@ const MessageListWithContext = <
400400 */
401401 const messageIdLastScrolledToRef = useRef < string > ( undefined ) ;
402402 const [ hasMoved , setHasMoved ] = useState ( false ) ;
403- const [ lastReceivedId , setLastReceivedId ] = useState (
404- getLastReceivedMessage ( processedMessageList ) ?. id ,
403+ const lastReceivedId = useMemo (
404+ ( ) => getLastReceivedMessage ( processedMessageList ) ?. id ,
405+ [ processedMessageList ] ,
405406 ) ;
406407 const [ scrollToBottomButtonVisible , setScrollToBottomButtonVisible ] = useState ( false ) ;
407408
@@ -588,9 +589,6 @@ const MessageListWithContext = <
588589 ] ) ;
589590
590591 useEffect ( ( ) => {
591- const lastReceivedMessage = getLastReceivedMessage ( processedMessageList ) ;
592- setLastReceivedId ( lastReceivedMessage ?. id ) ;
593-
594592 /**
595593 * Scroll down when
596594 * created_at timestamp of top message before update is lesser than created_at timestamp of top message after update - channel has resynced
@@ -698,6 +696,7 @@ const MessageListWithContext = <
698696 if ( ! flatListRef . current ) {
699697 return ;
700698 }
699+ console . log ( 'DOING IT HERE' ) ;
701700 clearTimeout ( failScrollTimeoutId . current ) ;
702701 scrollToIndexFailedRetryCountRef . current = 0 ;
703702 // keep track of this messageId, so that we dont scroll to again in useEffect for targeted message change
@@ -757,7 +756,7 @@ const MessageListWithContext = <
757756 // TODO: do not apply on RN 0.73 and above
758757 const shouldApplyAndroidWorkaround = inverted && Platform . OS === 'android' ;
759758
760- const renderItem = useStableCallback (
759+ const renderItem = useCallback (
761760 ( { index, item : message } : { index : number ; item : MessageType < StreamChatGenerics > } ) => {
762761 if ( ! channel || channel . disconnected || ( ! channel . initialized && ! channel . offlineMode ) ) {
763762 return null ;
@@ -826,6 +825,29 @@ const MessageListWithContext = <
826825 </ View >
827826 ) ;
828827 } ,
828+ [
829+ InlineDateSeparator ,
830+ InlineUnreadIndicator ,
831+ Message ,
832+ MessageSystem ,
833+ channel ,
834+ channelUnreadState ?. first_unread_message_id ,
835+ channelUnreadState ?. last_read ,
836+ channelUnreadState ?. last_read_message_id ,
837+ channelUnreadState ?. unread_messages ,
838+ client . userID ,
839+ goToMessage ,
840+ highlightedMessageId ,
841+ lastReceivedId ,
842+ messageContainer ,
843+ modifiedTheme ,
844+ myMessageTheme ,
845+ onThreadSelect ,
846+ screenPadding ,
847+ shouldApplyAndroidWorkaround ,
848+ shouldShowUnreadUnderlay ,
849+ threadList ,
850+ ] ,
829851 ) ;
830852
831853 useEffect ( ( ) => {
0 commit comments