@yamada-ui/react
Version:
React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion
48 lines • 1.68 kB
TypeScript
//#region src/hooks/use-disclosure/use-disclosure.d.ts
type DisclosureCallback<Y, M> = [Y] extends [never] ? () => M : undefined extends Y ? (value?: Y) => M : (value: Y) => M;
interface UseDisclosureProps<Y = never, M = never, D = Promise<void> | void, H = Promise<void> | void> {
/**
* If `true`, the element will be initially opened.
*/
defaultOpen?: boolean;
/**
* If `true`, the element will be opened.
*/
open?: boolean;
/**
* The timing of the open and close.
*
* @default 'after'
*/
timing?: "after" | "before";
/**
* Callback invoked to close the element.
*/
onClose?: DisclosureCallback<M, H>;
/**
* Callback invoked to open the element.
*/
onOpen?: DisclosureCallback<Y, D>;
}
/**
* `useDisclosure` is a custom hook that helps handle common open/close or toggle scenarios.
* It can be used to control components such as `Modal`, `Dialog`, `Drawer`, etc.
*
* @see https://yamada-ui.com/docs/hooks/use-disclosure
*/
declare const useDisclosure: <Y = never, M = never, D = Promise<void> | void, H = Promise<void> | void>({
defaultOpen,
open: controlledOpen,
timing,
onClose: onCloseProp,
onOpen: onOpenProp
}?: UseDisclosureProps<Y, M, D, H>) => {
open: boolean;
onClose: DisclosureCallback<M, H>;
onOpen: DisclosureCallback<Y, D>;
onToggle: DisclosureCallback<M, H> | DisclosureCallback<Y, D>;
};
type UseDisclosureReturn<Y = never, M = never, D = Promise<void> | void, H = Promise<void> | void> = ReturnType<typeof useDisclosure<Y, M, D, H>>;
//#endregion
export { DisclosureCallback, UseDisclosureProps, UseDisclosureReturn, useDisclosure };
//# sourceMappingURL=use-disclosure.d.ts.map