Fix unread toot indicator not honoring onlyMedia in public and community timelines (#12330)
* Fix unread toot indicator not honoring onlyMedia in public and community timelines * Fixup: `unread` already accounts for new content in pending items
This commit is contained in:
		
							parent
							
								
									0d5f3ae331
								
							
						
					
					
						commit
						0d6da8892a
					
				
					 2 changed files with 9 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -14,15 +14,16 @@ const messages = defineMessages({
 | 
			
		|||
  title: { id: 'column.community', defaultMessage: 'Local timeline' },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const mapStateToProps = (state, { onlyMedia, columnId }) => {
 | 
			
		||||
const mapStateToProps = (state, { columnId }) => {
 | 
			
		||||
  const uuid = columnId;
 | 
			
		||||
  const columns = state.getIn(['settings', 'columns']);
 | 
			
		||||
  const index = columns.findIndex(c => c.get('uuid') === uuid);
 | 
			
		||||
  const onlyMedia = (columnId && index >= 0) ? columns.get(index).getIn(['params', 'other', 'onlyMedia']) : state.getIn(['settings', 'community', 'other', 'onlyMedia']);
 | 
			
		||||
  const timelineState = state.getIn(['timelines', `community${onlyMedia ? ':media' : ''}`]);
 | 
			
		||||
 | 
			
		||||
  return {
 | 
			
		||||
    hasUnread: !!timelineState && (timelineState.get('unread') > 0 || timelineState.get('pendingItems').size > 0),
 | 
			
		||||
    onlyMedia: (columnId && index >= 0) ? columns.get(index).getIn(['params', 'other', 'onlyMedia']) : state.getIn(['settings', 'community', 'other', 'onlyMedia']),
 | 
			
		||||
    hasUnread: !!timelineState && timelineState.get('unread') > 0,
 | 
			
		||||
    onlyMedia,
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,14 +14,16 @@ const messages = defineMessages({
 | 
			
		|||
  title: { id: 'column.public', defaultMessage: 'Federated timeline' },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const mapStateToProps = (state, { onlyMedia, columnId }) => {
 | 
			
		||||
const mapStateToProps = (state, { columnId }) => {
 | 
			
		||||
  const uuid = columnId;
 | 
			
		||||
  const columns = state.getIn(['settings', 'columns']);
 | 
			
		||||
  const index = columns.findIndex(c => c.get('uuid') === uuid);
 | 
			
		||||
  const onlyMedia = (columnId && index >= 0) ? columns.get(index).getIn(['params', 'other', 'onlyMedia']) : state.getIn(['settings', 'public', 'other', 'onlyMedia']);
 | 
			
		||||
  const timelineState = state.getIn(['timelines', `public${onlyMedia ? ':media' : ''}`]);
 | 
			
		||||
 | 
			
		||||
  return {
 | 
			
		||||
    hasUnread: state.getIn(['timelines', `public${onlyMedia ? ':media' : ''}`, 'unread']) > 0,
 | 
			
		||||
    onlyMedia: (columnId && index >= 0) ? columns.get(index).getIn(['params', 'other', 'onlyMedia']) : state.getIn(['settings', 'public', 'other', 'onlyMedia']),
 | 
			
		||||
    hasUnread: !!timelineState && timelineState.get('unread') > 0,
 | 
			
		||||
    onlyMedia,
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue