react-application-core
Version:
A react-based application core for the business applications.
51 lines • 2.49 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.channelReducer = void 0;
var definition_1 = require("../definition");
var util_1 = require("../util");
/**
* @stable [06.11.2020]
* @param state
* @param action
*/
exports.channelReducer = function (state, action) {
var _a, _b, _c, _d;
if (state === void 0) { state = definition_1.INITIAL_REDUX_CHANNELS_ENTITY; }
var message = util_1.Selectors.payloadFromAction(action);
switch (action.type) {
case definition_1.$CHANNEL_REPLACE_MESSAGES_ACTION_TYPE:
return __assign(__assign({}, state), (_a = {}, _a[message.ip] = __assign(__assign({}, state[message.ip]), { messages: message.messages }), _a));
case definition_1.$CHANNEL_RECEIVE_MESSAGE_ACTION_TYPE:
switch (message.name) {
case definition_1.CHANNEL_CONNECT_EVENT:
return __assign(__assign({}, state), (_b = {}, _b[message.ip] = __assign(__assign({}, definition_1.INITIAL_REDUX_CHANNELS_ENTITY), { connected: true }), _b));
case definition_1.CHANNEL_DISCONNECT_EVENT:
return __assign(__assign({}, state), (_c = {}, _c[message.ip] = __assign(__assign({}, definition_1.INITIAL_REDUX_CHANNELS_ENTITY), { connected: false }), _c));
default:
var previousState = state[message.ip] || {};
return __assign(__assign({}, state), (_d = {}, _d[message.ip] = __assign(__assign({}, previousState), { messages: __spreadArrays((previousState.messages || []), [
message
]) }), _d));
}
}
return state;
};
//# sourceMappingURL=channel.reducer.js.map