Don't update follower counts on reblog toggle

rebase/4.0.0rc2
aschmitz 2017-11-11 21:42:22 -06:00
parent 5128c4261e
commit 48c705bbad
2 changed files with 5 additions and 2 deletions

View File

@ -107,10 +107,11 @@ export function fetchAccountFail(id, error) {
export function followAccount(id, reblogs = true) {
return (dispatch, getState) => {
const alreadyFollowing = getState().getIn(['relationships', id, 'following']);
dispatch(followAccountRequest(id));
api(getState).post(`/api/v1/accounts/${id}/follow`, { reblogs }).then(response => {
dispatch(followAccountSuccess(response.data));
dispatch(followAccountSuccess(response.data, alreadyFollowing));
}).catch(error => {
dispatch(followAccountFail(error));
});
@ -136,10 +137,11 @@ export function followAccountRequest(id) {
};
};
export function followAccountSuccess(relationship) {
export function followAccountSuccess(relationship, alreadyFollowing) {
return {
type: ACCOUNT_FOLLOW_SUCCESS,
relationship,
alreadyFollowing,
};
};

View File

@ -126,6 +126,7 @@ export default function accountsCounters(state = initialState, action) {
case STATUS_FETCH_SUCCESS:
return normalizeAccountFromStatus(state, action.status);
case ACCOUNT_FOLLOW_SUCCESS:
if (action.alreadyFollowing) { return state; }
return state.updateIn([action.relationship.id, 'followers_count'], num => num + 1);
case ACCOUNT_UNFOLLOW_SUCCESS:
return state.updateIn([action.relationship.id, 'followers_count'], num => Math.max(0, num - 1));