@fewings/react
Version:
Useful react components and hooks
42 lines (36 loc) • 1.35 kB
TypeScript
import * as React$1 from 'react';
import { ReactNode, Dispatch, SetStateAction } from 'react';
import * as react_jsx_runtime from 'react/jsx-runtime';
interface OverlayBaseProps<Resolve> {
resolve: (v: Resolve) => void;
reject: (reason: any) => void;
}
interface OverlayOptions {
closeOnClickOutside?: boolean;
}
interface OverlayItem<Resolve> {
id: number;
render: (props: OverlayBaseProps<Resolve>) => ReactNode;
resolve: (v: Resolve) => void;
reject: (reason: any) => void;
options?: OverlayOptions;
}
interface OverlayContextProps {
items: OverlayItem<any>[];
setItems: Dispatch<SetStateAction<OverlayItem<any>[]>>;
idRef: {
current: number;
};
}
declare function useOverlay(): {
open: <Resolve>(render: (props: OverlayBaseProps<Resolve>) => ReactNode, options?: OverlayOptions) => Promise<Resolve>;
closeAll: () => void;
};
interface Props {
children: ReactNode;
containerStyle?: React.CSSProperties;
containerClassName?: string;
}
declare function OverlayProvider({ children, containerStyle, containerClassName, }: Props): react_jsx_runtime.JSX.Element;
declare const OverlayContext: React$1.Context<OverlayContextProps>;
export { type OverlayBaseProps, OverlayContext, type OverlayContextProps, type OverlayItem, type OverlayOptions, OverlayProvider, useOverlay };