hss-pos / frontend /src /lib /stores /notifications.js
sashank1989
Initial commit: HSS POS restaurant management system
c2b0409
Raw
History Blame Contribute Delete
800 Bytes
import { writable, derived } from 'svelte/store';
const TOAST_TIMEOUT = 4000;
let toastId = 0;
function createNotificationStore() {
const { subscribe, update } = writable([]);
function add(message, type = 'info', duration = TOAST_TIMEOUT) {
const id = ++toastId;
update((toasts) => [...toasts, { id, message, type, duration }]);
if (duration > 0) {
setTimeout(() => remove(id), duration);
}
return id;
}
function remove(id) {
update((toasts) => toasts.filter((t) => t.id !== id));
}
return {
subscribe,
success: (msg, dur) => add(msg, 'success', dur),
error: (msg, dur) => add(msg, 'error', dur ?? 6000),
warning: (msg, dur) => add(msg, 'warning', dur),
info: (msg, dur) => add(msg, 'info', dur),
remove
};
}
export const toasts = createNotificationStore();