diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-11-23 22:57:57 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-11-23 22:57:57 +0100 |
commit | 7cee27f51790617859da87c7aef432373b40aad4 (patch) | |
tree | 68bec6934312f7155faddc96f4b77473ba9a8205 /app/assets/javascripts/components/reducers/statuses.jsx | |
parent | 3373ae02ded0ac5847350da9f9550721cdebe732 (diff) |
Fix unfollows not clearing reblogs, fix blocks not clearing reblogs and notifications,
skip ActionCable for follow/unfollow/block events, instead clear UI from blocked account's posts instantly if block request succeeds. Add forgotten i18n for sensitive content
Diffstat (limited to 'app/assets/javascripts/components/reducers/statuses.jsx')
-rw-r--r-- | app/assets/javascripts/components/reducers/statuses.jsx | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/app/assets/javascripts/components/reducers/statuses.jsx b/app/assets/javascripts/components/reducers/statuses.jsx index 2a24a75e4..f42b1a481 100644 --- a/app/assets/javascripts/components/reducers/statuses.jsx +++ b/app/assets/javascripts/components/reducers/statuses.jsx @@ -16,7 +16,8 @@ import { } from '../actions/timelines'; import { ACCOUNT_TIMELINE_FETCH_SUCCESS, - ACCOUNT_TIMELINE_EXPAND_SUCCESS + ACCOUNT_TIMELINE_EXPAND_SUCCESS, + ACCOUNT_BLOCK_SUCCESS } from '../actions/accounts'; import { NOTIFICATIONS_UPDATE, @@ -56,6 +57,18 @@ const deleteStatus = (state, id, references) => { return state.delete(id); }; +const filterStatuses = (state, relationship) => { + state.forEach(status => { + if (status.get('account') !== relationship.id) { + return; + } + + state = deleteStatus(state, status.get('id'), state.filter(item => item.get('reblog') === status.get('id'))); + }); + + return state; +}; + const initialState = Immutable.Map(); export default function statuses(state = initialState, action) { @@ -79,6 +92,8 @@ export default function statuses(state = initialState, action) { return normalizeStatuses(state, action.statuses); case TIMELINE_DELETE: return deleteStatus(state, action.id, action.references); + case ACCOUNT_BLOCK_SUCCESS: + return filterStatuses(state, action.relationship); default: return state; } |