You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
642 B
20 lines
642 B
6 years ago
|
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;
|
||
|
}
|
||
|
}
|