about summary refs log tree commit diff
path: root/app/javascript/flavours/glitch/reducers/polls.js
blob: 53d9b1d8cb414f59a1b2904578d766b866e1407c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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;
  }
}