UNPKG

@randy.tarampi/jsx

Version:

Some common JSX components for www.randytarampi.ca

24 lines (21 loc) 821 B
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);