feat(reducers-user-lists): handle case ZAPS_EXPAND_SUCCESS

environments/review-zapped-by-29xwir/deployments/4709
P. Reis 3 months ago
parent f6751915b0
commit bcbfed9faf

@ -66,6 +66,7 @@ import {
DISLIKES_FETCH_SUCCESS, DISLIKES_FETCH_SUCCESS,
REACTIONS_FETCH_SUCCESS, REACTIONS_FETCH_SUCCESS,
ZAPS_FETCH_SUCCESS, ZAPS_FETCH_SUCCESS,
ZAPS_EXPAND_SUCCESS,
} from 'soapbox/actions/interactions'; } from 'soapbox/actions/interactions';
import { import {
NOTIFICATIONS_UPDATE, NOTIFICATIONS_UPDATE,
@ -99,6 +100,7 @@ export const ZapRecord = ImmutableRecord({
}); });
const ZapListRecord = ImmutableRecord({ const ZapListRecord = ImmutableRecord({
next: null as string | null,
items: ImmutableList<Zap>(), items: ImmutableList<Zap>(),
isLoading: false, isLoading: false,
}); });
@ -207,8 +209,19 @@ export default function userLists(state = ReducerRecord(), action: AnyAction) {
items: ImmutableList(action.zaps.map(({ account, ...zap }: APIEntity) => ZapRecord({ items: ImmutableList(action.zaps.map(({ account, ...zap }: APIEntity) => ZapRecord({
...zap, ...zap,
account: account.id, account: account.id,
}))), }))), next: action.next,
})); }));
case ZAPS_EXPAND_SUCCESS:
return state.updateIn(['zapped_by', action.id], map => {
return (map as List)
.set('next', action.next)
.set('isLoading', false)
.update('items', list => (list as Items).concat(ImmutableList(action.zaps.map(({ account, ...zap }: APIEntity) => ZapRecord({
...zap,
account: account.id,
})))));
});
case NOTIFICATIONS_UPDATE: case NOTIFICATIONS_UPDATE:
return action.notification.type === 'follow_request' ? normalizeFollowRequest(state, action.notification) : state; return action.notification.type === 'follow_request' ? normalizeFollowRequest(state, action.notification) : state;
case FOLLOW_REQUESTS_FETCH_SUCCESS: case FOLLOW_REQUESTS_FETCH_SUCCESS:

Loading…
Cancel
Save