@nex-ui/react
Version:
🎉 A beautiful, modern, and reliable React component library.
44 lines (41 loc) • 1.39 kB
JavaScript
"use client";
import { jsx } from 'react/jsx-runtime';
import { DrawerProvider } from './DrawerContext.mjs';
import { useDefaultProps } from '../utils/useDefaultProps.mjs';
import { useSlot } from '../utils/useSlot.mjs';
import { Modal } from '../modal/Modal.mjs';
const Drawer = (inProps)=>{
const props = useDefaultProps({
name: 'Drawer',
props: inProps
});
const { open, children, restoreFocus, onOpenChange, defaultOpen, container, keepMounted, closeOnEscape, closeOnInteractBackdrop, preventScroll, onClose, hideBackdrop = false, ...remainingProps } = props;
const [RootSlot, getRootSlotProps] = useSlot({
elementType: Modal,
shouldForwardComponent: false,
externalForwardedProps: {
open,
container,
restoreFocus,
onOpenChange,
defaultOpen,
keepMounted,
preventScroll,
closeOnEscape,
onClose,
closeOnInteractOutside: !hideBackdrop && closeOnInteractBackdrop
}
});
return /*#__PURE__*/ jsx(RootSlot, {
...getRootSlotProps(),
children: /*#__PURE__*/ jsx(DrawerProvider, {
value: {
...remainingProps,
hideBackdrop
},
children: children
})
});
};
Drawer.displayName = 'Drawer';
export { Drawer };