react-mapfilter
Version:
A React Component for viewing and filtering GeoJSON
46 lines (36 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
var _findIndex = require('lodash/findIndex');
var _findIndex2 = _interopRequireDefault(_findIndex);
var _constants = require('../constants');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var features = function features() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var action = arguments[1];
var newState = void 0;
var index = void 0;
switch (action.type) {
case 'ADD_FEATURES':
return [].concat((0, _toConsumableArray3.default)(state), (0, _toConsumableArray3.default)(action.payload));
case _constants.EDIT_FEATURE:
var newFeature = action.payload;
newState = state.slice(0);
index = (0, _findIndex2.default)(state, { id: newFeature.id });
newState[index] = newFeature;
return newState;
case _constants.DELETE_FEATURE:
index = (0, _findIndex2.default)(state, { id: action.payload });
newState = state.slice(0);
newState.splice(index, 1);
return newState;
case 'REPLACE_FEATURES':
return action.payload;
}
return state;
};
exports.default = features;
//# sourceMappingURL=features.js.map