glitchier-soc/app/javascript/flavours/glitch/reducers/polls.js
Eugen Rochko 342d9d25bb Add polls
Port front-end parts of 4a3acdc916 to glitch-soc
2019-03-05 21:35:03 +01:00

19 lines
642 B
JavaScript

import { POLL_VOTE_SUCCESS, POLL_FETCH_SUCCESS } from 'mastodon/actions/polls';
import { POLLS_IMPORT } from 'mastodon/actions/importer';
import { Map as ImmutableMap, fromJS } from 'immutable';
const importPolls = (state, polls) => state.withMutations(map => polls.forEach(poll => map.set(poll.id, fromJS(poll))));
const initialState = ImmutableMap();
export default function polls(state = initialState, action) {
switch(action.type) {
case POLLS_IMPORT:
return importPolls(state, action.polls);
case POLL_VOTE_SUCCESS:
case POLL_FETCH_SUCCESS:
return importPolls(state, [action.poll]);
default:
return state;
}
}