UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

40 lines (36 loc) 1.04 kB
'use client'; 'use strict'; var React = require('react'); var hooks = require('@mantine/hooks'); var useLockScroll = require('./use-lock-scroll.cjs'); function useModal({ id, transitionProps, opened, trapFocus, closeOnEscape, onClose, returnFocus }) { const _id = hooks.useId(id); const [titleMounted, setTitleMounted] = React.useState(false); const [bodyMounted, setBodyMounted] = React.useState(false); const transitionDuration = typeof transitionProps?.duration === "number" ? transitionProps?.duration : 200; const shouldLockScroll = useLockScroll.useLockScroll({ opened, transitionDuration }); hooks.useWindowEvent("keydown", (event) => { if (!trapFocus && event.key === "Escape" && closeOnEscape) { onClose(); } }); hooks.useFocusReturn({ opened, shouldReturnFocus: trapFocus && returnFocus }); return { _id, titleMounted, bodyMounted, shouldLockScroll, setTitleMounted, setBodyMounted }; } exports.useModal = useModal; //# sourceMappingURL=use-modal.cjs.map