UNPKG

@hc.ds/mobile

Version:
49 lines (48 loc) 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Button = void 0; var _react = _interopRequireDefault(require("react")); var _button = _interopRequireDefault(require("@ant-design/react-native/lib/button")); var _theme = require("./theme"); var _text = require("../Typography/text"); var _utils = require("./utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } const renderChildren = (children, textStyle) => { if (typeof children === 'string') { return /*#__PURE__*/_react.default.createElement(_text.Text, { style: textStyle }, children); } else if (Array.isArray(children)) { return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children.map((child, index) => typeof child === 'string' ? /*#__PURE__*/_react.default.createElement(_text.Text, { style: textStyle, key: index }, child) : child)); } else { return children; } }; const Button = ({ style, theme = 'primary', block = false, testID = 'default', outline = false, children, ...props }) => { const textStyle = (0, _utils.getTextStyle)(theme); const buttonType = (0, _utils.getButtonType)(theme); const blockStyle = block ? _theme.ButtonTheme.block : null; const outlineStyle = outline ? _theme.ButtonTheme.outline : null; return /*#__PURE__*/_react.default.createElement(_button.default, _extends({ type: buttonType, style: [_theme.ButtonTheme[theme], blockStyle, outlineStyle, style], testID: `hcds-mobile-btn-${testID}`, accessibilityLabel: `hcds-mobile-btn-${testID}` }, props), renderChildren(children, textStyle)); }; exports.Button = Button; //# sourceMappingURL=button.js.map