UNPKG

@nu-art/thunder

Version:

Thunder - React & Typescript based frontend framework

55 lines (54 loc) 1.92 kB
import * as React from "react"; import { Module } from "@nu-art/ts-common"; import { Color } from "csstype"; import { Stylable, StylableBuilder } from "./dialog-module"; export declare enum ToastType { "success" = 0, "error" = 1, "info" = 2 } declare type PositionVertical = "bottom" | "top"; declare type PositionHorizontal = "left" | "right" | "center"; export declare type Toast_Model = Stylable & { duration: number; bgColor: string; type: ToastType; positionVertical?: PositionVertical; positionHorizontal?: PositionHorizontal; content: React.ReactNode; actions: React.ReactElement[]; }; export interface ToastListener { showToast(toast?: Toast_Model): void; } export declare class ToastBuilder extends StylableBuilder { private bgColor; private duration; private type; private positionVertical; private positionHorizontal; private actions; private content; setType(type: ToastType): this; setContent(content: React.ReactNode): this; setBackground(bgColor: Color): this; setDuration(duration: number): this; setActions(actions: React.ReactElement[]): this; addActions(...actions: React.ReactElement[]): this; setVerticalPosition(positionVertical: PositionVertical): this; setHorizontalPosition(positionHorizontal: PositionHorizontal): this; show(): void; } export declare class ToastModule_Class extends Module<{}> { private DefaultBuilder; private showToast; toastError(errorMessage: React.ReactNode, interval?: number): void; toastSuccess(successMessage: React.ReactNode, interval?: number): void; toastInfo(infoMessage: React.ReactNode, interval?: number): void; private toast; adjustStringMessage: (_message: string) => string; hideToast: (toast?: Toast_Model | undefined) => void; private toastImpl; } export declare const ToastModule: ToastModule_Class; export {};