@@ -40,6 +40,7 @@ const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, is
4040 if ( timeline . endsWith ( ':pinned' ) ) {
4141 mMap . set ( 'items' , statuses . map ( status => status . get ( 'id' ) ) ) ;
4242 } else if ( ! statuses . isEmpty ( ) ) {
43+ usePendingItems = usePendingItems || ! mMap . get ( 'top' ) || ! mMap . get ( 'pendingItems' ) . isEmpty ( ) ;
4344 mMap . update ( usePendingItems ? 'pendingItems' : 'items' , ImmutableList ( ) , oldIds => {
4445 const newIds = statuses . map ( status => status . get ( 'id' ) ) ;
4546
@@ -60,15 +61,16 @@ const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, is
6061} ;
6162
6263const updateTimeline = ( state , timeline , status , usePendingItems ) => {
63- if ( usePendingItems ) {
64+ const top = state . getIn ( [ timeline , 'top' ] ) ;
65+
66+ if ( usePendingItems || ! top || ! state . getIn ( [ timeline , 'pendingItems' ] ) . isEmpty ( ) ) {
6467 if ( state . getIn ( [ timeline , 'pendingItems' ] , ImmutableList ( ) ) . includes ( status . get ( 'id' ) ) || state . getIn ( [ timeline , 'items' ] , ImmutableList ( ) ) . includes ( status . get ( 'id' ) ) ) {
6568 return state ;
6669 }
6770
6871 return state . update ( timeline , initialTimeline , map => map . update ( 'pendingItems' , list => list . unshift ( status . get ( 'id' ) ) ) . update ( 'unread' , unread => unread + 1 ) ) ;
6972 }
7073
71- const top = state . getIn ( [ timeline , 'top' ] ) ;
7274 const ids = state . getIn ( [ timeline , 'items' ] , ImmutableList ( ) ) ;
7375 const includesId = ids . includes ( status . get ( 'id' ) ) ;
7476 const unread = state . getIn ( [ timeline , 'unread' ] , 0 ) ;
0 commit comments