@ozen-ui/kit
Version:
React component library
31 lines (30 loc) • 1.43 kB
JavaScript
import { __assign, __read, __spreadArray } from "tslib";
export 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 __assign(__assign({}, messageItem), { open: false });
}
return messageItem;
});
return __assign(__assign({}, state), { messages: newMessages });
}
var _a = __read(queue), firstMessageItemFromQueue = _a[0], otherQueue = _a.slice(1);
return __assign(__assign({}, state), { messages: messages && firstMessageItemFromQueue
? __spreadArray(__spreadArray([], __read(messages), false), [firstMessageItemFromQueue], false) : [], queue: otherQueue });
};