@randy.tarampi/jsx
Version:
Some common JSX components for www.randytarampi.ca
24 lines (21 loc) • 821 B
JavaScript
import { fromJS, Map } from "immutable";
import { CLEAR_MAP, INSTANTIATE_GOOGLE_MAP, UPDATE_MAP } from "../actions/map";
export var mapReducer = function mapReducer() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Map();
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case INSTANTIATE_GOOGLE_MAP:
case UPDATE_MAP:
{
var mapState = state.get(action.payload.id) || Map();
return state.set(action.payload.id, mapState.mergeDeep(fromJS(action.payload)));
}
case CLEAR_MAP:
return state.delete(action.payload.id);
default:
return state;
}
};
export default mapReducer;
export var getMap = (state, mapId) => state.get(mapId);
export var hasMap = (state, mapId) => !!getMap(state, mapId);