UNPKG

@ozen-ui/kit

Version:

React component library

31 lines (30 loc) 1.43 kB
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 }); };