UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

89 lines (88 loc) 2.86 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); Object.defineProperty(exports, 'DialogTitleBar', { enumerable: true, get: function () { return DialogTitleBar; }, }); 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 _index = require('../../utils/index.js'); const _IconButton = require('../Buttons/IconButton.js'); const _DialogContext = require('./DialogContext.js'); const _DialogMainContext = require('./DialogMainContext.js'); const _DialogTitleBarTitle = require('./DialogTitleBarTitle.js'); const _DialogDragContext = require('./DialogDragContext.js'); const DialogTitleBar = Object.assign( _react.forwardRef((props, ref) => { let dialogContext = (0, _DialogContext.useDialogContext)(); let dialogMainContext = (0, _DialogMainContext.useDialogMainContext)(); let { children, titleText, isDismissible = dialogContext?.isDismissible, onClose = dialogContext?.onClose, isDraggable = dialogContext?.isDraggable, className, onPointerDown: onPointerDownProp, ...rest } = props; let { onPointerDown } = (0, _DialogDragContext.useDialogDragContext)(); let onClick = _react.useCallback( (e) => { dialogMainContext?.beforeClose(); onClose?.(e); }, [dialogMainContext, onClose], ); return _react.createElement( _index.Box, { className: (0, _classnames.default)('iui-dialog-title-bar', className, { 'iui-dialog-title-bar-filled': isDraggable, }), ref: ref, onPointerDown: (0, _index.mergeEventHandlers)( onPointerDownProp, onPointerDown, ), ...rest, }, children ? children : _react.createElement( _react.Fragment, null, _react.createElement( _DialogTitleBarTitle.DialogTitleBarTitle, null, titleText, ), isDismissible && _react.createElement( _IconButton.IconButton, { size: 'small', styleType: 'borderless', onClick: onClick, 'aria-label': 'Close', 'data-iui-shift': 'right', }, _react.createElement(_index.SvgClose, null), ), ), ); }), { Title: _DialogTitleBarTitle.DialogTitleBarTitle, }, ); if ('development' === process.env.NODE_ENV) DialogTitleBar.displayName = 'Dialog.TitleBar';