UNPKG

awv3

Version:
121 lines (101 loc) 4.9 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.reducer = exports.actions = exports.types = undefined; var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _extends3 = require('babel-runtime/helpers/extends'); var _extends4 = _interopRequireDefault(_extends3); var _omit = require('lodash/omit'); var _omit2 = _interopRequireDefault(_omit); var _without = require('lodash/without'); var _without2 = _interopRequireDefault(_without); var _plugins = require('./plugins'); var _connections = require('./connections'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var scope = "globals"; var types = exports.types = { setLocale: scope + '/setLocale', setActiveSelection: scope + '/setActiveSelection', setActiveConnection: scope + '/setActiveConnection', linkPlugins: scope + '/linkPlugins', unlinkPlugins: scope + '/unlinkPlugins', addResources: scope + '/addResources', addMessage: scope + '/addMessage', beginTask: scope + '/beginTask', finishTask: scope + '/finishTask' }; var actions = exports.actions = { setLocale: function setLocale() { var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en_US'; return { type: types.setLocale, payload: { id: id } }; }, setActiveSelection: function setActiveSelection() { var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; return { type: types.setActiveSelection, payload: { id: id } }; }, addResources: function addResources(resources) { return { type: types.addResources, payload: { resources: resources } }; }, linkPlugins: function linkPlugins(plugins) { return { type: types.linkPlugins, payload: { plugins: plugins } }; }, unlinkPlugins: function unlinkPlugins(plugins) { return { type: types.unlinkPlugins, payload: { plugins: plugins } }; }, addMessage: function addMessage(type, message, reset) { return { type: types.addMessage, payload: { type: type, message: message, reset: reset } }; }, beginTask: function beginTask(id, command) { return { type: types.beginTask, payload: { id: id, command: command } }; }, finishTask: function finishTask(id) { return { type: types.finishTask, payload: { id: id } }; }, setActiveConnection: function setActiveConnection() { var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; return function (dispatch) { id && dispatch(_connections.actions.setActiveFeature(id, undefined)); dispatch(actions.setActiveSelection()); dispatch({ type: types.setActiveConnection, payload: { id: id } }); }; } }; var originalState = { locale: 'en_US', url: '', activeConnection: undefined, activeSelection: undefined, tasks: {}, resources: {}, plugins: [] }; var reducer = exports.reducer = function reducer() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : originalState; var _ref = arguments[1]; var type = _ref.type, payload = _ref.payload; switch (type) { case types.setLocale: return (0, _extends4.default)({}, state, { locale: payload.id }); case types.setActiveSelection: return (0, _extends4.default)({}, state, { activeSelection: payload.id }); case types.setActiveConnection: return (0, _extends4.default)({}, state, { activeConnection: payload.id }); case types.addResources: return (0, _extends4.default)({}, state, { resources: (0, _extends4.default)({}, state.resources, payload.resources) }); case types.linkPlugins: return (0, _extends4.default)({}, state, { plugins: [].concat((0, _toConsumableArray3.default)(state.plugins), (0, _toConsumableArray3.default)(Array.isArray(payload.plugins) ? payload.plugins : [payload.plugins])) }); case types.unlinkPlugins: return (0, _extends4.default)({}, state, { plugins: (0, _without2.default)(state.plugins, Array.isArray(payload.plugins) ? payload.plugins : [payload.plugins]) }); case types.beginTask: return (0, _extends4.default)({}, state, { tasks: (0, _extends4.default)({}, state.tasks, (0, _defineProperty3.default)({}, payload.id, payload.command)) }); case types.finishTask: return (0, _extends4.default)({}, state, { tasks: (0, _omit2.default)(state.tasks, payload.id) }); default: return state; } };