UNPKG

@bigfishtv/cockpit

Version:

65 lines (55 loc) 2.15 kB
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /** * @module Reducers/fileTypes */ import { FILE_EXTENSIONS_INITED, FILE_EXTENSION_ADDED, FILE_EXTENSIONS_ADDED, FILE_EXTENSION_REMOVED, FILE_EXTENSIONS_REMOVED, FILE_CATEGORY_EMPTIED } from '../constants/ActionTypes'; var initialState = {}; /** * Reducer for managing file type extensions * @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 FILE_EXTENSIONS_INITED: return _extends({}, action.state) || state; case FILE_EXTENSION_ADDED: if (!state[action.category]) { state[action.category] = [action.extension]; } else if (state[action.category].indexOf(action.extension) < 0) { state[action.category].push(action.extension); } return state; case FILE_EXTENSIONS_ADDED: if (!state[action.category]) { state[action.category] = action.extensions; } else { action.extensions.map(function (extension) { if (state[action.category].indexOf(extension) < 0) state[action.category].push(extension); }); } return state; case FILE_EXTENSION_REMOVED: if (state[action.category]) { var index = state[action.category].indexOf(action.extension); if (index >= 0) state[action.category].splice(index, 1); } return state; case FILE_EXTENSIONS_REMOVED: if (state[action.category]) { action.extensions.map(function (extension) { var index = state[action.category].indexOf(extension); if (index >= 0) state[action.category].splice(index, 1); }); } return state; case FILE_CATEGORY_EMPTIED: if (state[action.category]) state[action.category] = []; return state; } return state; }