UNPKG

@re-flex/ui

Version:
40 lines (39 loc) 1.44 kB
import React from "react"; import { AlertProps } from "../Alert"; import { Grow } from "../Transitions/Grow"; declare type SnackbarID = number | string; declare type vert = "top" | "bottom"; declare type horz = "left" | "right" | "center"; export declare type SnackbarPlacement = `${vert}-${horz}`; export declare type SnackbarItem = AlertProps & { id?: SnackbarID; placement?: SnackbarPlacement; open: boolean; message: string; autoHideDuration?: number; disableAutoHide?: boolean; TransitionComponent?: typeof Grow; }; declare type SnackbarStore = { [Place in SnackbarPlacement]: SnackbarItem[]; }; interface SnackbarProviderFace { bars: SnackbarStore; onClear: () => void; onDestroy: (id: SnackbarID) => void; onClose: (id: SnackbarID) => void; push: (message: string, config: AlertProps & { placement: SnackbarPlacement; }) => SnackbarID; defaults?: { duration: number; placement: SnackbarPlacement; maxSnack: number; }; TransitionComponent?: typeof Grow; } declare type SnackbarContextValues = Pick<SnackbarProviderFace, "onClear" | "onDestroy" | "push" | "onClose">; export declare const SnackbarContext: React.Context<SnackbarContextValues>; export declare const useSnackbar: () => SnackbarContextValues; export declare const SnackbarProvider: React.FC<Pick<SnackbarProviderFace, "defaults" | "TransitionComponent">>; export {};