UNPKG

@hc.ds/mobile

Version:
41 lines 1.73 kB
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); } import React from 'react'; import AntButton from '@ant-design/react-native/lib/button'; import { ButtonTheme } from './theme'; import { Text } from '../Typography/text'; import { getButtonType, getTextStyle } from './utils'; const renderChildren = (children, textStyle) => { if (typeof children === 'string') { return /*#__PURE__*/React.createElement(Text, { style: textStyle }, children); } else if (Array.isArray(children)) { return /*#__PURE__*/React.createElement(React.Fragment, null, children.map((child, index) => typeof child === 'string' ? /*#__PURE__*/React.createElement(Text, { style: textStyle, key: index }, child) : child)); } else { return children; } }; export const Button = ({ style, theme = 'primary', block = false, testID = 'default', outline = false, children, ...props }) => { const textStyle = getTextStyle(theme); const buttonType = getButtonType(theme); const blockStyle = block ? ButtonTheme.block : null; const outlineStyle = outline ? ButtonTheme.outline : null; return /*#__PURE__*/React.createElement(AntButton, _extends({ type: buttonType, style: [ButtonTheme[theme], blockStyle, outlineStyle, style], testID: `hcds-mobile-btn-${testID}`, accessibilityLabel: `hcds-mobile-btn-${testID}` }, props), renderChildren(children, textStyle)); }; //# sourceMappingURL=button.js.map