@hc.ds/mobile
Version:
Healthy Church Design System - HC Mobile
49 lines (48 loc) • 2.09 kB
JavaScript
;
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