UNPKG

sonner-native

Version:

An opinionated toast component for React Native. A port of @emilkowalski's sonner.

61 lines 2.17 kB
import * as React from 'react'; import type { ToastProps, ToastRef } from './types'; type ToastTimer = { timeout: ReturnType<typeof setTimeout>; startTime: number; remainingTime: number; isPaused: boolean; }; type ToastStoreState = { toasts: ToastProps[]; toastsById: Map<string | number, ToastProps>; toastsCounter: number; toastRefs: Record<string | number, React.RefObject<ToastRef | null>>; shouldShowOverlay: boolean; toastTimers: Record<string | number, ToastTimer>; toastHeights: Record<string | number, number>; toastHeightsVersion: number; isExpanded: boolean; }; type Subscriber = () => void; type ToastStoreConfig = { autoWiggleOnUpdate?: 'never' | 'toast-change' | 'always'; visibleToasts?: number; duration?: number; pauseWhenPageIsHidden?: boolean; }; declare class ToastStore { private state; private subscribers; private config; private hideOverlayTimeout; private promiseResolvers; private collapseCooldown; private collapseCooldownTimeout; subscribe: (callback: Subscriber) => () => void; getSnapshot: () => ToastStoreState; setConfig: (config: ToastStoreConfig) => void; private notify; private cloneIndex; private startTimer; private clearTimer; pauseTimer: (id: string | number) => void; resumeTimer: (id: string | number) => void; pauseAllTimers: () => void; resumeAllTimers: () => void; private handlePromise; addToast: (options: Omit<ToastProps, "id" | "numberOfToasts" | "index" | "orderedToastIds"> & { id?: string | number; }) => string | number; dismissToast: (id: string | number | undefined, origin?: "onDismiss" | "onAutoClose") => string | number | undefined; private scheduleHideOverlay; wiggleToast: (id: string | number) => void; getToastRef: (id: string | number) => React.RefObject<ToastRef | null> | undefined; setToastHeight: (id: string | number, height: number) => void; expand: () => void; collapse: () => void; toggleExpand: () => void; } export declare const toastStore: ToastStore; export {}; //# sourceMappingURL=toast-store.d.ts.map