@equinor/mad-toast
Version:
Toast package built on top of `react-native-toast-message`
33 lines (31 loc) • 799 B
JavaScript
// src/queue.ts
var _ToastQueue = class _ToastQueue {
};
_ToastQueue.queue = [];
_ToastQueue.subscribers = /* @__PURE__ */ new Set();
_ToastQueue.emitChange = () => {
for (const subscriber of _ToastQueue.subscribers) {
subscriber();
}
};
_ToastQueue.subscribe = (subscriber) => {
_ToastQueue.subscribers.add(subscriber);
return () => {
_ToastQueue.subscribers.delete(subscriber);
};
};
_ToastQueue.getSnapshot = () => _ToastQueue.queue;
_ToastQueue.enqueue = (item) => {
_ToastQueue.queue = [..._ToastQueue.queue, item];
_ToastQueue.emitChange();
};
_ToastQueue.shift = () => {
const toast = _ToastQueue.queue.at(0);
_ToastQueue.queue = [..._ToastQueue.queue.slice(1)];
_ToastQueue.emitChange();
return toast;
};
var ToastQueue = _ToastQueue;
export {
ToastQueue
};