230a012f00
* Add polls Fix #1629 * Add tests * Fixes * Change API for creating polls * Use name instead of content for votes * Remove poll validation for remote polls * Add polls to public pages * When updating the poll, update options just in case they were changed * Fix public pages showing both poll and other media
20 lines
642 B
JavaScript
20 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;
|
|
}
|
|
}
|