Fix unread notification marker not updating when mounting column (#14954)
This commit is contained in:
		@@ -151,7 +151,7 @@ const deleteByStatus = (state, statusId) => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const updateMounted = (state) => {
 | 
					const updateMounted = (state) => {
 | 
				
			||||||
  state = state.update('mounted', count => count + 1);
 | 
					  state = state.update('mounted', count => count + 1);
 | 
				
			||||||
  if (!shouldCountUnreadNotifications(state)) {
 | 
					  if (!shouldCountUnreadNotifications(state, state.get('mounted') === 1)) {
 | 
				
			||||||
    state = state.set('readMarkerId', state.get('lastReadId'));
 | 
					    state = state.set('readMarkerId', state.get('lastReadId'));
 | 
				
			||||||
    state = clearUnread(state);
 | 
					    state = clearUnread(state);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -167,14 +167,14 @@ const updateVisibility = (state, visibility) => {
 | 
				
			|||||||
  return state;
 | 
					  return state;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const shouldCountUnreadNotifications = (state) => {
 | 
					const shouldCountUnreadNotifications = (state, ignoreScroll = false) => {
 | 
				
			||||||
  const isTabVisible   = state.get('isTabVisible');
 | 
					  const isTabVisible   = state.get('isTabVisible');
 | 
				
			||||||
  const isOnTop        = state.get('top');
 | 
					  const isOnTop        = state.get('top');
 | 
				
			||||||
  const isMounted      = state.get('mounted') > 0;
 | 
					  const isMounted      = state.get('mounted') > 0;
 | 
				
			||||||
  const lastReadId     = state.get('lastReadId');
 | 
					  const lastReadId     = state.get('lastReadId');
 | 
				
			||||||
  const lastItemReached = !state.get('hasMore') || lastReadId === '0' || (!state.get('items').isEmpty() && compareId(state.get('items').last().get('id'), lastReadId) <= 0);
 | 
					  const lastItemReached = !state.get('hasMore') || lastReadId === '0' || (!state.get('items').isEmpty() && compareId(state.get('items').last().get('id'), lastReadId) <= 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return !(isTabVisible && isOnTop && isMounted && lastItemReached);
 | 
					  return !(isTabVisible && (ignoreScroll || isOnTop) && isMounted && lastItemReached);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const recountUnread = (state, last_read_id) => {
 | 
					const recountUnread = (state, last_read_id) => {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user