Fix #82 - only show latest reblog of status in UI
This commit is contained in:
		
							parent
							
								
									b5c6d00afa
								
							
						
					
					
						commit
						e865673175
					
				
					 1 changed files with 12 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -123,7 +123,18 @@ function appendNormalizedAccountTimeline(state, accountId, statuses) {
 | 
			
		|||
 | 
			
		||||
function updateTimeline(state, timeline, status) {
 | 
			
		||||
  state = normalizeStatus(state, status);
 | 
			
		||||
  state = state.update(timeline, list => list.unshift(status.get('id')));
 | 
			
		||||
 | 
			
		||||
  state = state.update(timeline, list => {
 | 
			
		||||
    const reblogOfId = status.getIn(['reblog', 'id'], null);
 | 
			
		||||
 | 
			
		||||
    if (reblogOfId !== null) {
 | 
			
		||||
      const otherReblogs = state.get('statuses').filter(item => item.get('reblog') === reblogOfId).map((_, itemId) => itemId);
 | 
			
		||||
      list = list.filterNot(itemId => itemId === reblogOfId || otherReblogs.includes(itemId));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return list.unshift(status.get('id'));
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  state = state.updateIn(['accounts_timelines', status.getIn(['account', 'id'])], Immutable.List([]), list => (list.includes(status.get('id')) ? list : list.unshift(status.get('id'))));
 | 
			
		||||
 | 
			
		||||
  return state;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue