UNPKG

react-elegant-ui

Version:

Elegant UI components, made by BEM best practices for react

95 lines (94 loc) 3.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultProps = exports.cnButton = exports.Button = void 0; var _react = _interopRequireDefault(require("react")); var _classname = require("@bem-react/classname"); var _di = require("../../lib/di"); var _interactions = require("@react-aria/interactions"); var _utils = require("@react-aria/utils"); require("./Button.css"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var __assign = void 0 && (void 0).__assign || function () { __assign = Object.assign || function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __rest = void 0 && (void 0).__rest || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var cnButton = exports.cnButton = (0, _classname.cn)('Button'); var defaultProps = exports.defaultProps = { as: 'button' }; var Button = function (_a) { var as = _a.as, disabled = _a.disabled, raw = _a.raw, icon = _a.icon, iconLeft = _a.iconLeft, iconRight = _a.iconRight, children = _a.children, innerRef = _a.innerRef, className = _a.className, addonBefore = _a.addonBefore, addonAfter = _a.addonAfter, onPress = _a.onPress, onPressChange = _a.onPressChange, onPressStart = _a.onPressStart, onPressEnd = _a.onPressEnd, onPressUp = _a.onPressUp, props = __rest(_a, ["as", "disabled", "raw", "icon", "iconLeft", "iconRight", "children", "innerRef", "className", "addonBefore", "addonAfter", "onPress", "onPressChange", "onPressStart", "onPressEnd", "onPressUp"]); var _b = (0, _interactions.usePress)({ isDisabled: disabled, onPress: onPress, onPressChange: onPressChange, onPressStart: onPressStart, onPressEnd: onPressEnd, onPressUp: onPressUp }), isPressed = _b.isPressed, pressProps = _b.pressProps; var iconLeftOrIcon = iconLeft || icon; // insert innerRef back when `as` is component type if (typeof as !== 'string') { props.innerRef = innerRef; } var Component = as; var propsMix = (0, _utils.mergeProps)(props, pressProps); var _c = (0, _di.useComponentRegistry)(cnButton()), Content = _c.Content, Text = _c.Text, Icon = _c.Icon; return /*#__PURE__*/_react.default.createElement(Component, __assign({ ref: typeof as === 'string' ? innerRef : undefined }, propsMix, { className: cnButton({ pressed: isPressed, disabled: disabled, raw: raw }, [className]), disabled: disabled, "aria-disabled": disabled }), addonBefore, raw ? children : ( /*#__PURE__*/_react.default.createElement(Content, null, iconLeftOrIcon && ( /*#__PURE__*/_react.default.createElement(Icon, { provider: iconLeftOrIcon, side: "left" })), !children ? undefined : /*#__PURE__*/_react.default.createElement(Text, null, children), iconRight && /*#__PURE__*/_react.default.createElement(Icon, { provider: iconRight, side: "right" }))), addonAfter); }; exports.Button = Button; Button.displayName = cnButton(); Button.defaultProps = defaultProps;