@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
114 lines (113 loc) • 2.47 kB
JavaScript
"use client";
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
import React, { useContext } from 'react';
import Modal from "../modal/Modal.js";
import DrawerContent from "./DrawerContent.js";
import DrawerBody from "./parts/DrawerBody.js";
import DrawerHeader from "./parts/DrawerHeader.js";
import DrawerNavigation from "./parts/DrawerNavigation.js";
import classnames from 'classnames';
import Context from "../../shared/Context.js";
import { removeUndefinedProps } from "../../shared/component-helper.js";
function Drawer({
id,
rootId,
contentId,
focusSelector,
labelledBy,
directDomReturn,
hideCloseButton,
disabled,
title,
dialogTitle,
closeTitle,
containerPlacement = 'right',
spacing = true,
noAnimation,
noAnimationOnMobile,
animationDuration,
fullscreen = 'auto',
onOpen,
onClose,
onClosePrevent,
openModal,
closeModal,
preventClose,
preventOverlayClose,
openState,
openDelay,
omitTriggerButton,
trigger,
triggerAttributes,
closeButtonAttributes,
overlayClass,
contentClass,
contentRef,
scrollRef,
top,
bottom,
left,
right,
space,
...props
}) {
const context = useContext(Context);
const modalProps = removeUndefinedProps({
title,
id,
focusSelector,
labelledBy,
disabled,
spacing,
openDelay,
contentId,
dialogTitle,
closeTitle,
hideCloseButton,
preventClose,
preventOverlayClose,
animationDuration,
noAnimation,
noAnimationOnMobile,
fullscreen,
containerPlacement,
openState,
directDomReturn,
rootId,
onOpen,
onClose,
onClosePrevent,
openModal,
closeModal,
omitTriggerButton,
trigger,
triggerAttributes,
closeButtonAttributes,
overlayClass,
contentRef,
scrollRef,
top,
bottom,
left,
right,
space
});
const drawerProps = removeUndefinedProps({
...props,
noAnimation,
noAnimationOnMobile,
fullscreen,
spacing,
containerPlacement
});
return React.createElement(Modal, _extends({}, context.Drawer, modalProps, {
fullscreen: false,
contentClass: classnames('dnb-drawer__root', contentClass)
}), React.createElement(DrawerContent, _extends({}, context.Drawer, drawerProps)));
}
Drawer.Body = DrawerBody;
Drawer.Header = DrawerHeader;
Drawer.Navigation = DrawerNavigation;
Drawer._supportsSpacingProps = true;
export default Drawer;
//# sourceMappingURL=Drawer.js.map