UNPKG

ming-demo3

Version:
199 lines (167 loc) 5.07 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.tabs = tabs; exports.deleteItem = deleteItem; exports.clear = clear; exports.addItem = addItem; exports.activateItem = activateItem; exports.refreshWidth = refreshWidth; exports.refreshHeight = refreshHeight; exports.closeOther = closeOther; exports.closeAll = closeAll; var _find2 = _interopRequireDefault(require("lodash/find")); var _findIndex2 = _interopRequireDefault(require("lodash/findIndex")); var _immutable = _interopRequireDefault(require("immutable")); var _util = require("@mdf/cube/lib/helpers/util"); var $$initialState = _immutable["default"].fromJS({ panes: [], needUpdate: false }); function tabs() { var $$state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : $$initialState; var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case 'PLATFORM_UI_TAB_ADD': var tabItem = action.payload.value; var key = tabItem && tabItem.key; if (!key) return $$state; if (!tabItem.params && tabItem.content) tabItem.params = { key: key, title: tabItem.title, content: tabItem.content }; return $$state.update('panes', function (panes) { var _panes = _immutable["default"].Iterable.prototype.isPrototypeOf(panes) ? panes.toJS() : panes; var idx = (0, _findIndex2["default"])(_panes, ['key', key]); if (idx === -1) { _panes.push(tabItem); } else { _panes[idx] = tabItem; } return _panes; }).merge({ activeKey: key, needUpdate: true }); case 'PLATFORM_UI_TAB_CHANGE': return $$state.merge({ activeKey: action.payload.key, needUpdate: false }); case 'PLATFORM_UI_TAB_DEL': var closeKey = action.payload.key; var activeKey = $$state.getIn(['activeKey']); var lastIdx; return $$state.update('panes', function (panes) { var list = panes.filter(function (pane, i) { if (pane.key === closeKey) { lastIdx = i - 1; if (lastIdx >= 0 && activeKey === pane.key) activeKey = panes[lastIdx].key; return false; } return true; }); return list; }).merge({ closeKey: closeKey, activeKey: activeKey, needUpdate: true }); case 'PLATFORM_UI_TAB_CLEAR': return $$state.update('panes', function (panes) { return []; }).merge({ needUpdate: true }); case 'PLATFORM_UI_TAB_WIDTH': return $$state.merge({ width: action.width, needUpdate: true }); case 'PLATFORM_UI_TAB_HEIGHT': return $$state.merge({ height: action.height, needUpdate: true }); case 'PLATFORM_UI_TAB_CLOSE_OTHER': return $$state.update('panes', function (panes) { var activeKey = $$state.get('activeKey'); return panes.filter(function (item) { return item.closable === false || item.key === activeKey; }); }); case 'PLATFORM_UI_TAB_CLOSE_ALL': { var _activeKey = $$state.get('activeKey'); return $$state.update('panes', function (panes) { var list = panes.filter(function (item) { return item.closable === false; }); _activeKey = list.length && list[0].key; return list; }).set('activeKey', _activeKey); } case 'PLATFORM_UI_TAB_UPDATE_ONE': return $$state.update('panes', function (panes) { _.merge((0, _find2["default"])(panes, function (p) { return p.key === action.payload.key; }), action.payload.pane); return panes; }).set('needUpdate', true); default: return $$state; } } function deleteItem(key) { return function (dispatch) { dispatch((0, _util.genAction)('PLATFORM_UI_TAB_DEL', { key: key })); }; } function clear() { return function (dispatch) { dispatch((0, _util.genAction)('PLATFORM_UI_TAB_CLEAR')); }; } function addItem(value) { return function (dispatch) { dispatch((0, _util.genAction)('PLATFORM_UI_TAB_ADD', { value: value })); }; } function activateItem(key) { return function (dispatch) { dispatch((0, _util.genAction)('PLATFORM_UI_TAB_CHANGE', { key: key })); if (key === 'PORTAL') dispatch(getMyToDo()); }; } function refreshWidth(width) { return function (dispatch) { dispatch({ type: 'PLATFORM_UI_TAB_WIDTH', width: width }); }; } function refreshHeight(height) { return function (dispatch) { dispatch({ type: 'PLATFORM_UI_TAB_HEIGHT', height: height }); }; } function closeOther() { return (0, _util.genAction)('PLATFORM_UI_TAB_CLOSE_OTHER'); } function closeAll() { return (0, _util.genAction)('PLATFORM_UI_TAB_CLOSE_ALL'); } //# sourceMappingURL=tabs.js.map