]> cat aescling's git repositories - mastodon.git/commitdiff
[Glitch] Fix race condition when interacting with deleted toots
authorThibaut Girka <thib@sitedethib.com>
Tue, 13 Nov 2018 15:30:07 +0000 (16:30 +0100)
committerThibaut Girka <thib@sitedethib.com>
Tue, 13 Nov 2018 15:30:07 +0000 (16:30 +0100)
Port c875f19673e923e7a6e3c2b6656e96b863ca5915 to glitch-soc

app/javascript/flavours/glitch/reducers/statuses.js

index 617d96e5d495861610339f5c19a1b8f7716c7985..1beaf73e1b51aa2c7973e6d8bf934e8ddf5aa3bf 100644 (file)
@@ -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:
This page took 0.028552 seconds and 3 git commands to generate.