@ozen-ui/kit
Version:
React component library
35 lines (34 loc) • 1.65 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateMessagesFromQueue = void 0;
var tslib_1 = require("tslib");
var updateMessagesFromQueue = function (state) {
var queue = state.queue, messages = state.messages, maxMessages = state.providerProps.maxMessages;
var isSomeMessageInClosingProcess = messages.some(function (_a) {
var open = _a.open;
return !open;
});
var isSomeMessageInOpeningProcess = messages.some(function (_a) {
var opening = _a.opening;
return opening;
});
if (!queue.length ||
isSomeMessageInClosingProcess ||
isSomeMessageInOpeningProcess) {
return state;
}
var oldestMessage = messages[0];
if (messages.length === maxMessages) {
var newMessages = messages.map(function (messageItem) {
if ((oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.messageId) === messageItem.messageId) {
return tslib_1.__assign(tslib_1.__assign({}, messageItem), { open: false });
}
return messageItem;
});
return tslib_1.__assign(tslib_1.__assign({}, state), { messages: newMessages });
}
var _a = tslib_1.__read(queue), firstMessageItemFromQueue = _a[0], otherQueue = _a.slice(1);
return tslib_1.__assign(tslib_1.__assign({}, state), { messages: messages && firstMessageItemFromQueue
? tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(messages), false), [firstMessageItemFromQueue], false) : [], queue: otherQueue });
};
exports.updateMessagesFromQueue = updateMessagesFromQueue;
;