[Glitch] Wrong count in response when removing favourite/reblog
Port 540cced981 to glitch-soc
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
			
			
This commit is contained in:
		
							parent
							
								
									2f3f1d75fa
								
							
						
					
					
						commit
						9a35793e13
					
				
					 1 changed files with 19 additions and 4 deletions
				
			
		|  | @ -3,11 +3,16 @@ import { Map as ImmutableMap, fromJS } from 'immutable'; | |||
| import { | ||||
|   REBLOG_REQUEST, | ||||
|   REBLOG_FAIL, | ||||
|   UNREBLOG_REQUEST, | ||||
|   UNREBLOG_FAIL, | ||||
|   FAVOURITE_REQUEST, | ||||
|   FAVOURITE_FAIL, | ||||
|   UNFAVOURITE_SUCCESS, | ||||
|   UNFAVOURITE_REQUEST, | ||||
|   UNFAVOURITE_FAIL, | ||||
|   BOOKMARK_REQUEST, | ||||
|   BOOKMARK_FAIL, | ||||
|   UNBOOKMARK_REQUEST, | ||||
|   UNBOOKMARK_FAIL, | ||||
| } from 'flavours/glitch/actions/interactions'; | ||||
| import { | ||||
|   STATUS_MUTE_SUCCESS, | ||||
|  | @ -75,18 +80,28 @@ export default function statuses(state = initialState, action) { | |||
|     return importStatuses(state, action.statuses); | ||||
|   case FAVOURITE_REQUEST: | ||||
|     return state.setIn([action.status.get('id'), 'favourited'], true); | ||||
|   case UNFAVOURITE_SUCCESS: | ||||
|     return state.updateIn([action.status.get('id'), 'favourites_count'], x => Math.max(0, x - 1)); | ||||
|   case FAVOURITE_FAIL: | ||||
|     return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'favourited'], false); | ||||
|   case UNFAVOURITE_REQUEST: | ||||
|     return state.setIn([action.status.get('id'), 'favourited'], false); | ||||
|   case UNFAVOURITE_FAIL: | ||||
|     return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'favourited'], true); | ||||
|   case BOOKMARK_REQUEST: | ||||
|     return state.setIn([action.status.get('id'), 'bookmarked'], true); | ||||
|     return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'bookmarked'], true); | ||||
|   case BOOKMARK_FAIL: | ||||
|     return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'bookmarked'], false); | ||||
|   case UNBOOKMARK_REQUEST: | ||||
|     return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'bookmarked'], false); | ||||
|   case UNBOOKMARK_FAIL: | ||||
|     return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'bookmarked'], true); | ||||
|   case REBLOG_REQUEST: | ||||
|     return state.setIn([action.status.get('id'), 'reblogged'], true); | ||||
|   case REBLOG_FAIL: | ||||
|     return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'reblogged'], false); | ||||
|   case UNREBLOG_REQUEST: | ||||
|     return state.setIn([action.status.get('id'), 'reblogged'], false); | ||||
|   case UNREBLOG_FAIL: | ||||
|     return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'reblogged'], true); | ||||
|   case STATUS_MUTE_SUCCESS: | ||||
|     return state.setIn([action.id, 'muted'], true); | ||||
|   case STATUS_UNMUTE_SUCCESS: | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue