@bigfishtv/cockpit
Version:
69 lines (57 loc) • 1.81 kB
JavaScript
/**
* @module Reducers/imageFilterPresets
*/
import { IMAGE_FILTER_PRESET_ADDED, IMAGE_FILTER_PRESETS_ADDED, IMAGE_FILTER_PRESET_REMOVED, IMAGE_FILTER_PRESETS_REMOVED } from '../constants/ActionTypes';
var initialState = [];
/**
* Reducer for managing image editing filter presets
* @param {Object} state
* @param {Object} action
* @param {String} action.type - const action type from constants/ActionTypes
* @return {Object} returns state
*/
export default function () {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments[1];
switch (action.type) {
case IMAGE_FILTER_PRESET_ADDED:
if (!state.filter(function (preset) {
return preset.title == action.preset.title;
}).length) {
state.push(action.preset);
}
return state;
case IMAGE_FILTER_PRESETS_ADDED:
var _loop = function _loop() {
if (_isArray) {
if (_i >= _iterator.length) return 'break';
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) return 'break';
_ref = _i.value;
}
var preset = _ref;
if (!state.filter(function (_preset) {
return _preset.title == preset.title;
}).length) {
state.push(preset);
}
};
for (var _iterator = action.presets, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
var _ret = _loop();
if (_ret === 'break') break;
}
return state;
case IMAGE_FILTER_PRESET_REMOVED:
return state.filter(function (preset) {
return preset.title != action.presetTitle;
});
case IMAGE_FILTER_PRESETS_REMOVED:
return state.filter(function (preset) {
return action.presetTitles.indexOf(preset.title) < 0;
});
}
return state;
}