UNPKG

cosmo-ui

Version:
30 lines 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var constants_1 = require("../constants"); exports.initiaTrayState = {}; exports.trayReducer = function (state, action) { if (state === void 0) { state = exports.initiaTrayState; } switch (action.type) { case constants_1.OPEN_TRAY_ITEM: { return setItemOpenState(state, action, true); } case constants_1.CLOSE_TRAY_ITEM: { return setItemOpenState(state, action, false); } case constants_1.TOGGLE_TRAY_ITEM: { var itemState = (state[action.trayName] || {})[action.itemName]; return setItemOpenState(state, action, itemState && itemState.open ? false : true); } default: { return state; } } }; var setItemOpenState = function (state, action, open) { if (state === void 0) { state = exports.initiaTrayState; } var currentTrayState = state[action.trayName] || {}; return tslib_1.__assign({}, state, (_a = {}, _a[action.trayName] = tslib_1.__assign({}, state[action.trayName], (_b = {}, _b[action.itemName] = tslib_1.__assign({}, currentTrayState[action.itemName], { open: open }), _b)), _a)); var _a, _b; }; //# sourceMappingURL=tray.js.map