import { writable } from 'svelte/store'; function createToastsStore() { const { subscribe, update } = writable({toasts: []}); const addToast = (o) => { o.timestamp = new Date(); o.close = () => { update((i) => { i.toasts = i.toasts.filter((j) => { return !(j.title === o.title && j.msg === o.msg && j.timestamp === o.timestamp) }); return i; }); } update((i) => { i.toasts.unshift(o); return i; }); o.cancel = setTimeout(o.close, o.dismiss?o.dismiss:5000); }; const addErrorToast = (o) => { if (!o.title) o.title = 'Une erreur est survenue !'; if (!o.color) o.color = 'danger'; return addToast(o); }; return { subscribe, addToast, addErrorToast, }; } export const ToastsStore = createToastsStore();