@re-flex/ui
Version:
Re-Flex ui library
40 lines (39 loc) • 1.44 kB
TypeScript
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 {};