@progressive-development/pd-page
Version:
Progressive development page helper, teaser, menu, footer.
43 lines (41 loc) • 1.13 kB
JavaScript
class ToastBus extends EventTarget {
/**
* Show a toast notification
* @param message - Message to display
* @param type - Toast type (default: "info")
* @param duration - Duration in ms (default: component default, -1 for persistent)
*/
show(message, type = "info", duration) {
this.dispatchEvent(
new CustomEvent("toast", {
detail: { message, type, duration }
})
);
}
/**
* Show a success toast
* @param message - Message to display
* @param duration - Duration in ms (optional)
*/
success(message, duration) {
this.show(message, "success", duration);
}
/**
* Show an error toast (persistent by default)
* @param message - Message to display
* @param duration - Duration in ms (default: -1 for persistent)
*/
error(message, duration = -1) {
this.show(message, "error", duration);
}
/**
* Show an info toast
* @param message - Message to display
* @param duration - Duration in ms (optional)
*/
info(message, duration) {
this.show(message, "info", duration);
}
}
const toastBus = new ToastBus();
export { toastBus };