diff options
author | Thibaut Girka <thib@sitedethib.com> | 2018-11-13 16:30:07 +0100 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2018-11-13 16:30:07 +0100 |
commit | 6ce7e74b46d47863f95f1fe3209437e24a4644b7 (patch) | |
tree | 072ee635a105e9138d03f499ed2f666bc1bf102c | |
parent | bfe2b9cc501205a07628b59b0a38a8643a4ca11c (diff) |
[Glitch] Fix race condition when interacting with deleted toots
Port c875f19673e923e7a6e3c2b6656e96b863ca5915 to glitch-soc
-rw-r--r-- | app/javascript/flavours/glitch/reducers/statuses.js | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/app/javascript/flavours/glitch/reducers/statuses.js b/app/javascript/flavours/glitch/reducers/statuses.js index 617d96e5d..1beaf73e1 100644 --- a/app/javascript/flavours/glitch/reducers/statuses.js +++ b/app/javascript/flavours/glitch/reducers/statuses.js @@ -118,15 +118,15 @@ export default function statuses(state = initialState, action) { case FAVOURITE_REQUEST: return state.setIn([action.status.get('id'), 'favourited'], true); case FAVOURITE_FAIL: - return state.setIn([action.status.get('id'), 'favourited'], false); + return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'favourited'], false); case BOOKMARK_REQUEST: return state.setIn([action.status.get('id'), 'bookmarked'], true); case BOOKMARK_FAIL: - return state.setIn([action.status.get('id'), 'bookmarked'], false); + return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'bookmarked'], false); case REBLOG_REQUEST: return state.setIn([action.status.get('id'), 'reblogged'], true); case REBLOG_FAIL: - return state.setIn([action.status.get('id'), 'reblogged'], false); + return state.get(action.status.get('id')) === undefined ? state : state.setIn([action.status.get('id'), 'reblogged'], false); case STATUS_MUTE_SUCCESS: return state.setIn([action.id, 'muted'], true); case STATUS_UNMUTE_SUCCESS: |