@yamada-ui/react
Version:
React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion
51 lines (50 loc) • 1.75 kB
TypeScript
import { HTMLProps, PropGetter } from "../../core/components/index.types.js";
import "../../core/index.js";
import { UseDisclosureProps } from "../../hooks/use-disclosure/use-disclosure.js";
//#region src/components/modal/use-modal.d.ts
interface UseModalProps extends HTMLProps, Omit<UseDisclosureProps, "timing"> {
/**
* If `true`, the modal will close when the `Esc` key is pressed.
*
* @default true
*/
closeOnEsc?: boolean;
/**
* If `true`, the modal will close when the overlay is clicked.
*
* @default true
*/
closeOnOverlay?: boolean;
/**
* Callback invoked when the escape key is pressed and focus is within modal.
*/
onEsc?: () => void;
}
declare const useModal: ({
closeOnEsc,
closeOnOverlay,
defaultOpen,
open: openProp,
onClose: onCloseProp,
onEsc,
onOpen: onOpenProp,
...rest
}?: UseModalProps) => {
open: boolean;
getBodyProps: PropGetter<"div", undefined, undefined>;
getCloseButtonProps: PropGetter<"button", undefined, undefined>;
getCloseTriggerProps: PropGetter<"button", undefined, undefined>;
getContentProps: PropGetter<"section", undefined, undefined>;
getFooterProps: PropGetter<"footer", undefined, undefined>;
getHeaderProps: PropGetter<"header", undefined, undefined>;
getOpenTriggerProps: PropGetter<"button", undefined, undefined>;
getOverlayProps: PropGetter<"div", undefined, undefined>;
getRootProps: PropGetter<"div", undefined, undefined>;
getTitleProps: PropGetter<"h2", undefined, undefined>;
onClose: () => void | Promise<void>;
onOpen: () => void | Promise<void>;
};
type UseModalReturn = ReturnType<typeof useModal>;
//#endregion
export { UseModalProps, UseModalReturn, useModal };
//# sourceMappingURL=use-modal.d.ts.map