@nu-art/thunder
Version:
Thunder - React & Typescript based frontend framework
55 lines (54 loc) • 1.92 kB
TypeScript
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 {};