UNPKG

react-dyn-tabs

Version:
66 lines (65 loc) 2 kB
"use strict"; exports.__esModule = true; exports["default"] = reducer; var _actions = _interopRequireDefault(require("./actions.js")); var _helper = _interopRequireDefault(require("../helper")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function reducer(state, action) { switch (action.type) { case _actions["default"].close: { var arr = state.openTabIDs, removedItemIndex = arr.indexOf(action.tabId); if (removedItemIndex >= 0) { var newArr = arr.slice(); newArr.splice(removedItemIndex, 1); return { selectedTabID: state.selectedTabID, openTabIDs: newArr }; } return state; } case _actions["default"].open: { var _arr = state.openTabIDs, tabId = action.tabId; if (_arr.indexOf(tabId) === -1) { var _newArr = _arr.slice(); _newArr.push(tabId); return { selectedTabID: state.selectedTabID, openTabIDs: _newArr }; } return state; } case _actions["default"].refresh: return _helper["default"].getCopyState(state); case _actions["default"].active: { var _tabId = action.tabId; if (state.selectedTabID !== _tabId) return { selectedTabID: _tabId, openTabIDs: state.openTabIDs }; return state; } case _actions["default"].sort: { var _arr2 = state.openTabIDs, _newArr2 = action.tabId, newArrCount = _newArr2.length; if (_arr2.length !== newArrCount) return state; for (var i = 0; i < newArrCount; i++) { if (_arr2.indexOf(_newArr2[i]) === -1) return state; } return { selectedTabID: state.selectedTabID, openTabIDs: _newArr2 }; } default: throw new Error("Undefined action type '" + action.type + "'"); } }