cosmo-ui
Version:
Common React components
30 lines • 1.3 kB
JavaScript
;
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