UNPKG

react-dyn-tabs

Version:
61 lines 1.72 kB
import actions from './actions.js'; import helper from '../helper'; export default function reducer(state, action) { switch (action.type) { case actions.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.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.refresh: return helper.getCopyState(state); case actions.active: { var _tabId = action.tabId; if (state.selectedTabID !== _tabId) return { selectedTabID: _tabId, openTabIDs: state.openTabIDs }; return state; } case actions.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 + "'"); } }