UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

51 lines (50 loc) 1.79 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); Object.defineProperty(exports, 'ButtonBase', { enumerable: true, get: function () { return ButtonBase; }, }); 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 _Box = require('./Box.js'); const _useIsClient = require('../hooks/useIsClient.js'); const ButtonBase = _react.forwardRef((props, forwardedRef) => { let { as: asProp = 'button', disabled: disabledProp, htmlDisabled, type: typeProp = 'button' === asProp ? 'button' : void 0, ...rest } = props; let isClient = (0, _useIsClient.useIsClient)(); let ariaDisabled = disabledProp && !htmlDisabled && isClient && 'button' === asProp; let handleIfEnabled = (handler) => (e) => { if (disabledProp) return; handler?.(e); }; let type = 'button' === asProp && disabledProp ? 'button' : typeProp; return _react.createElement(_Box.Box, { as: asProp, type: type, ref: forwardedRef, 'aria-disabled': ariaDisabled ? 'true' : void 0, 'data-iui-disabled': disabledProp ? 'true' : void 0, disabled: htmlDisabled ?? (!isClient && disabledProp) ? true : void 0, ...rest, className: (0, _classnames.default)('iui-button-base', props.className), onClick: handleIfEnabled(props.onClick), onPointerDown: handleIfEnabled(props.onPointerDown), onPointerUp: handleIfEnabled(props.onPointerUp), }); }); if ('development' === process.env.NODE_ENV) ButtonBase.displayName = 'ButtonBase';