UNPKG

react-toasts-forked-esm

Version:
43 lines (34 loc) 1.4 kB
import * as React from "react"; import { WatchableStore } from "watchable-stores"; export interface IToastsStore { status: string; message: string | React.ReactNode; timer: number; classNames: string[] | string; } class Store extends WatchableStore<IToastsStore> { constructor() { super({ status: "", message: "", timer: 0, classNames: "" }); } public success(message: string | React.ReactNode, timer?: number, classNames?: string | string[]): void { this._toast("success", message, timer, classNames); } public info(message: string | React.ReactNode, timer?: number, classNames?: string | string[]): void { this._toast("info", message, timer, classNames); } public warning(message: string | React.ReactNode, timer?: number, classNames?: string | string[]): void { this._toast("warning", message, timer, classNames); } public error(message: string | React.ReactNode, timer?: number, classNames?: string | string[]): void { this._toast("error", message, timer, classNames); } private _toast(status: string, message: string | React.ReactNode, timer?: number, classNames?: string | string[]): void { this.data = { classNames: classNames || "", message, status, timer: timer || 3000, }; } } export const ToastsStore = new Store();