UNPKG

react-fox-toast

Version:

This toast for UI which is very flexible to use

110 lines (104 loc) 3.67 kB
import React$1, { ReactNode } from 'react'; type ToastType = 'success' | 'error' | 'info' | 'custom' | 'promise' | 'warning' | 'envelope' | 'drawer'; type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'; type Aria = { role: string; label: string; }; interface ToastProps { id: string; message: ReactNode | any; type: ToastType; position?: ToastPosition; duration?: number; icon?: ReactNode; className?: string; style?: React.CSSProperties; iconStyle?: React.CSSProperties; expandable?: boolean; expandedContent?: ReactNode; onExpand?: any; isClosing?: any; isCloseBtn?: any; expandedClassName?: string; closeBtnStyle?: React.CSSProperties; toastTypeTheming?: any; spacingToast?: React.CSSProperties; isPausedOnHover?: boolean; direction?: string; aria?: Aria; } type ToastTypeTheming = { success: { style: React$1.CSSProperties; className: string; }; error: { style: React$1.CSSProperties; className: string; }; info: { style: React$1.CSSProperties; className: string; }; custom: { style: React$1.CSSProperties; className: string; }; }; interface ToastContainerProps { toastTypeTheming?: ToastTypeTheming; spacing?: number; position?: ToastPosition; duration?: number; direction?: string; isPausedOnHover?: boolean; aria?: Aria; } declare const ToastContainer: React$1.FC<ToastContainerProps>; interface Toast { id: string; message: React.ReactNode; type: ToastType; duration?: number; position?: ToastPosition; isClosing?: boolean; isVisible?: boolean; expandedContent?: React.ReactNode; isExpanded?: boolean; icon?: React.ReactNode; promise?: Promise<any>; status?: 'pending' | 'resolved' | 'rejected'; timerId?: NodeJS.Timeout; startTime?: number; remainingTime?: number; isPaused?: boolean; isPausedOnHover?: boolean; onDismiss?: (id: string, message: React.ReactNode) => void; onExpandContent?: (id: string, message: React.ReactNode) => void; aria?: Aria; } declare const toast: ((message: React.ReactNode, options?: Partial<Omit<ToastProps, "message">>) => string) & { success: (message: React.ReactNode, options?: Partial<Omit<ToastProps, "message" | "type">>) => string; error: (message: React.ReactNode, options?: Partial<Omit<ToastProps, "message" | "type">>) => string; info: (message: React.ReactNode, options?: Partial<Omit<ToastProps, "message" | "type">>) => string; envelope: (message: React.ReactNode, options?: Partial<Omit<ToastProps, "message" | "type">>) => string; drawer: (message: React.ReactNode, options?: Partial<Omit<ToastProps, "message" | "type">>) => string; warning: (message: React.ReactNode, options?: Partial<Omit<ToastProps, "message" | "type">>) => string; custom: (message: React.ReactNode, options?: Partial<Omit<ToastProps, "message" | "type">>) => string; remove: (id: string) => void; removeAll: () => void; update: (id: string, updates: Partial<Toast>) => void; pause: (id: string) => void; remainingTime: (id: string) => number | null; resume: (id: string) => void; promise: <T = void>(promise: Promise<T>, { loading, success, error, position, toastOptions, }: { loading: string; success: string; error: string; duration?: number; position?: any; toastOptions?: Partial<ToastProps>; }) => Promise<T>; }; export { ToastContainer, type ToastPosition, toast };