react-confirm
Version:
Small library which makes your Dialog component callable
50 lines (40 loc) • 1.61 kB
TypeScript
import * as React from 'react';
type ConfirmableProps<P, R> = {
dispose: () => void;
resolve: PromiseLike<R>;
reject: (reason?: any) => void;
} & P;
type ConfirmableDialog<P, R> = React.ComponentType<ConfirmableProps<P, R>>;
export type ConfirmDialogProps<P, R> = {
/** Dismiss dialog without resolving the promise. */
dismiss: () => void;
/** Resolve the promise with the given value. */
proceed: (value: R) => void;
/** Reject the promise with the given value. */
cancel: (value?: any) => void;
/** Indicates if the dialog should be shown aka. someone is waiting for a promise. */
show: boolean;
} & P;
export type ConfirmDialog<P, R> = React.ComponentType<ConfirmDialogProps<P, R>> ;
export declare function confirmable<P, R>(
component: ConfirmDialog<P, R>
): ConfirmableDialog<P, R>;
export declare function createConfirmation<P, R>(
component: ConfirmableDialog<P, R>,
unmountDelay?: number,
mountingNode?: HTMLElement,
): (props: P) => Promise<R>;
type Mounter = {
mount: (component: React.ComponentType, ) => string
unmount: (key: string) => void
}
type TreeMounter = {
options: {
setMountedCallback: (callback: any) => void
mountNode: Element | DocumentFragment
}
} & Mounter;
export declare function createReactTreeMounter(mountNode?: HTMLElement): TreeMounter;
export declare function createMountPoint(moounter: TreeMounter): React.ComponentType;
export declare function createDomTreeMounter(mountNode?: HTMLElement): Mounter;
export declare function createConfirmationCreater(mounter: Mounter): typeof createConfirmation;