@yamada-ui/react
Version:
React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion
28 lines (27 loc) • 1.43 kB
TypeScript
import { DisclosureCallback, UseDisclosureProps } from "./use-disclosure.js";
//#region src/hooks/use-disclosure/use-promise-disclosure.d.ts
interface UsePromiseDisclosureProps<Y = never, M = never, D = never, H = Promise<void> | void, R = Promise<void> | void> extends UseDisclosureProps<M, D | Y, H, R> {
disableCloseOnSuccess?: boolean;
error?: unknown;
}
/**
* `usePromiseDisclosure` is a custom hook that helps handle common open/close or toggle scenarios with promises.
* It can be used to control components such as `Modal`, `Dialog`, `Drawer`, etc.
*
* @see https://yamada-ui.com/docs/hooks/use-promise-disclosure
*/
declare const usePromiseDisclosure: <Y = never, M = never, D = never, H = Promise<void> | void, R = Promise<void> | void>({
disableCloseOnSuccess,
error,
...rest
}?: UsePromiseDisclosureProps<Y, M, D, H, R>) => {
open: boolean;
onClose: DisclosureCallback<D, R>;
onOpen: DisclosureCallback<M, [Y] extends [never] ? Promise<void> : Promise<Y>>;
onSuccess: DisclosureCallback<Y, R>;
onToggle: DisclosureCallback<Y | D, R> | DisclosureCallback<M, H>;
};
type UsePromiseDisclosureReturn<Y = never, M = never, D = never, H = Promise<void> | void, R = Promise<void> | void> = ReturnType<typeof usePromiseDisclosure<Y, M, D, H, R>>;
//#endregion
export { UsePromiseDisclosureProps, UsePromiseDisclosureReturn, usePromiseDisclosure };
//# sourceMappingURL=use-promise-disclosure.d.ts.map