awv3
Version:
⚡ AWV3 embedded CAD
121 lines (101 loc) • 4.9 kB
JavaScript
;
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;
}
};