UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

65 lines (64 loc) 2.09 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); Object.defineProperty(exports, 'DialogBackdrop', { enumerable: true, get: function () { return DialogBackdrop; }, }); 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 _Backdrop = require('../Backdrop/Backdrop.js'); const _index = require('../../utils/index.js'); const _DialogContext = require('./DialogContext.js'); const _DialogMainContext = require('./DialogMainContext.js'); const _classnames = /*#__PURE__*/ _interop_require_default._( require('classnames'), ); const DialogBackdrop = _react.forwardRef((props, ref) => { let dialogContext = (0, _DialogContext.useDialogContext)(); let dialogMainContext = (0, _DialogMainContext.useDialogMainContext)(); let { isVisible = dialogContext?.isOpen, isDismissible = dialogContext?.isDismissible, onClose = dialogContext?.onClose, closeOnExternalClick = dialogContext?.closeOnExternalClick, relativeTo = dialogContext?.relativeTo, onMouseDown, className, style, ...rest } = props; let backdropRef = _react.useRef(null); let refs = (0, _index.useMergedRefs)(backdropRef, ref); let handleMouseDown = (event) => { event.persist(); if (event.target !== backdropRef.current) return; if (isDismissible && closeOnExternalClick && onClose) { dialogMainContext?.beforeClose(); onClose(event); } onMouseDown?.(event); }; return _react.createElement(_Backdrop.Backdrop, { isVisible: isVisible, className: (0, _classnames.default)( { 'iui-backdrop-fixed': 'viewport' === relativeTo, }, className, ), ref: refs, onMouseDown: handleMouseDown, style: { pointerEvents: 'auto', ...style, }, ...rest, }); }); if ('development' === process.env.NODE_ENV) DialogBackdrop.displayName = 'Dialog.Backdrop';