@itwin/itwinui-react
Version:
A react component library for iTwinUI
99 lines (98 loc) • 2.99 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true,
});
Object.defineProperty(exports, 'Dialog', {
enumerable: true,
get: function () {
return Dialog;
},
});
const _interop_require_default = require('@swc/helpers/_/_interop_require_default');
const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard');
const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react'));
const _classnames = /*#__PURE__*/ _interop_require_default._(
require('classnames'),
);
const _DialogTitleBar = require('./DialogTitleBar.js');
const _DialogContent = require('./DialogContent.js');
const _DialogBackdrop = require('./DialogBackdrop.js');
const _DialogContext = require('./DialogContext.js');
const _DialogButtonBar = require('./DialogButtonBar.js');
const _DialogMain = require('./DialogMain.js');
const _index = require('../../utils/index.js');
const DialogComponent = _react.forwardRef((props, forwardedRef) => {
let {
trapFocus = false,
setFocus = trapFocus,
preventDocumentScroll = false,
isOpen = false,
isDismissible = true,
closeOnEsc = true,
closeOnExternalClick = false,
onClose,
isDraggable = false,
isResizable = false,
relativeTo = 'viewport',
placement,
className,
portal = false,
...rest
} = props;
let dialogRootRef = _react.useRef(null);
let [dialogElement, setDialogElement] = _react.useState(null);
let mergedRefs = (0, _index.useMergedRefs)(forwardedRef, dialogRootRef);
return isOpen
? _react.createElement(
_DialogContext.DialogContext.Provider,
{
value: {
isOpen,
onClose,
closeOnEsc,
closeOnExternalClick,
isDismissible,
preventDocumentScroll,
trapFocus,
setFocus,
isDraggable,
isResizable,
relativeTo,
placement,
dialogRootRef,
setDialogElement,
},
},
_react.createElement(
_index.Portal,
{
portal: portal,
},
_react.createElement(
_index.PortalContainerContext.Provider,
{
value: dialogElement,
},
_react.createElement(_index.Box, {
className: (0, _classnames.default)(
'iui-dialog-wrapper',
className,
),
'data-iui-relative': 'container' === relativeTo,
ref: mergedRefs,
...rest,
}),
),
),
)
: null;
});
if ('development' === process.env.NODE_ENV)
DialogComponent.displayName = 'Dialog';
const Dialog = Object.assign(DialogComponent, {
Backdrop: _DialogBackdrop.DialogBackdrop,
Main: _DialogMain.DialogMain,
TitleBar: _DialogTitleBar.DialogTitleBar,
Content: _DialogContent.DialogContent,
ButtonBar: _DialogButtonBar.DialogButtonBar,
});