@itwin/itwinui-react
Version:
A react component library for iTwinUI
49 lines (48 loc) • 1.13 kB
JavaScript
import * as React from 'react';
import { Dialog } from '../Dialog/Dialog.js';
export const Modal = React.forwardRef((props, forwardedRef) => {
let {
isOpen = false,
isDismissible = true,
closeOnEsc = true,
closeOnExternalClick = true,
onClose,
title,
children,
portal = true,
wrapperProps,
backdropProps,
titleBarProps,
...rest
} = props;
return React.createElement(
Dialog,
{
isOpen: isOpen,
closeOnEsc: closeOnEsc,
closeOnExternalClick: closeOnExternalClick,
isDismissible: isDismissible,
onClose: onClose,
preventDocumentScroll: true,
trapFocus: true,
setFocus: true,
ref: forwardedRef,
portal: portal,
...wrapperProps,
},
React.createElement(Dialog.Backdrop, backdropProps),
React.createElement(
Dialog.Main,
{
'aria-modal': true,
...rest,
},
React.createElement(Dialog.TitleBar, {
titleText: title,
...titleBarProps,
}),
children,
),
);
});
if ('development' === process.env.NODE_ENV) Modal.displayName = 'Modal';