[Glitch] Fix unread notification marker not updating when mounting column
Port dac3e362fd5c3d1be9e5d89149049a7eb2c6bbc4 to glitch-soc Signed-off-by: Thibaut Girka <thib@sitedethib.com>
This commit is contained in:
		
							parent
							
								
									f7306c7b7c
								
							
						
					
					
						commit
						842c048c6b
					
				@ -185,7 +185,7 @@ const deleteMarkedNotifs = (state) => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
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);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -201,7 +201,7 @@ 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;
 | 
				
			||||||
@ -209,7 +209,7 @@ const shouldCountUnreadNotifications = (state) => {
 | 
				
			|||||||
  const lastItem       = state.get('items').findLast(item => item !== null);
 | 
					  const lastItem       = state.get('items').findLast(item => item !== null);
 | 
				
			||||||
  const lastItemReached = !state.get('hasMore') || lastReadId === '0' || (lastItem && compareId(lastItem.get('id'), lastReadId) <= 0);
 | 
					  const lastItemReached = !state.get('hasMore') || lastReadId === '0' || (lastItem && compareId(lastItem.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) => {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user