UNPKG

redux-modal-tabs

Version:
45 lines (44 loc) 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const constants_1 = require("./constants"); exports.defaultReduxModalTabsState = { modalTabs: [], activeModalTabId: null }; function reduxModalTabsReducer(state = exports.defaultReduxModalTabsState, action) { switch (action.type) { case constants_1.ADD_MODAL_TAB: { const modalTabs = state.modalTabs.concat([]); const modalTab = action.payload.modalTab; const existing = modalTabs.findIndex(search => search.id === modalTab.id); if (existing !== -1) { // If the id already exists, replace it modalTabs[existing] = modalTab; } else { modalTabs.push(modalTab); } let activeModalTabId = state.activeModalTabId; if (action.payload.open) { activeModalTabId = modalTab.id; } return Object.assign({}, state, { modalTabs, activeModalTabId }); } case constants_1.REMOVE_MODAL_TAB: { const modalTabs = state.modalTabs.filter(modalTab => modalTab.id !== action.payload.id); return Object.assign({}, state, { modalTabs }); } case constants_1.OPEN_MODAL_TAB: { const activeModalTabId = action.payload.id; return Object.assign({}, state, { activeModalTabId }); } case constants_1.CLOSE_MODAL_TAB: { return Object.assign({}, state, { activeModalTabId: null }); } default: { return state; } } } exports.reduxModalTabsReducer = reduxModalTabsReducer;