UNPKG

@prezly/react-promise-modal

Version:

The proper (and easy) way of doing modals in React. With Promises.

26 lines (25 loc) 969 B
import * as React from "react"; import { type Milliseconds } from "./ModalTransitions"; interface Options { concurrencyMode?: ConcurrencyMode; transitionDuration?: Milliseconds; } type ConcurrencyMode = "stack" | "replace" | "ignore"; type RenderFunction<P> = (props: P) => React.ReactElement | null | undefined; interface RenderProps<T> { show: boolean; stage: "open" | "opening" | "closing"; onDismiss: () => void; onSubmit: (value: Exclude<T, undefined>) => void; } export declare function usePromiseModal<T>(render: RenderFunction<RenderProps<T>>, options?: Options): { modal: React.ReactElement; invoke: () => Promise<T | undefined>; isDisplayed: boolean; }; export declare function usePromiseModal<T, Args>(render: RenderFunction<RenderProps<T> & Omit<Args, keyof RenderProps<T>>>, options?: Options): { modal: React.ReactElement; invoke: (args: Args) => Promise<T | undefined>; isDisplayed: boolean; }; export {};