UNPKG

tuya-panel-kit

Version:

a functional component library for developing tuya device panels!

111 lines (94 loc) 3.15 kB
Object.defineProperty(exports, "__esModule", { value: true }); var _jsxFileName = 'src/components/tabbar/radio-button/radioButton.js'; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactNative = require('react-native'); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _TYText = require('../../TYText'); var _TYText2 = _interopRequireDefault(_TYText); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var styles = _reactNative.StyleSheet.create({ textStyle: { color: '#9CA3A9', textAlign: 'center', backgroundColor: 'transparent', fontSize: 14, fontWeight: '400' }, activeTextStyle: { color: '#57BCFB', fontWeight: '500' }, circleStyle: { width: 4, height: 4, borderRadius: 2, backgroundColor: '#57BCFB' } }); var RadioButton = function RadioButton(props) { var title = props.title, onItemPress = props.onItemPress, style = props.style, isActive = props.isActive, textStyle = props.textStyle, activeTextStyle = props.activeTextStyle, circleStyle = props.circleStyle, accessibilityLabel = props.accessibilityLabel, textAccessibilityLabel = props.textAccessibilityLabel, type = props.type; var customTextStyle = [styles.textStyle, textStyle && textStyle, isActive && styles.activeTextStyle, isActive && activeTextStyle && activeTextStyle]; return _react2.default.createElement( _reactNative.TouchableOpacity, { onPress: onItemPress, style: [{ alignItems: 'center', justifyContent: 'center' }, style], accessibilityLabel: accessibilityLabel, __source: { fileName: _jsxFileName, lineNumber: 48 } }, typeof title === 'string' || typeof title === 'number' ? isActive || type === 'radio' ? _react2.default.createElement( _TYText2.default, { style: customTextStyle, numberOfLines: 1, accessibilityLabel: textAccessibilityLabel, __source: { fileName: _jsxFileName, lineNumber: 55 } }, title ) : _react2.default.createElement(_reactNative.View, { style: [styles.circleStyle, circleStyle], __source: { fileName: _jsxFileName, lineNumber: 63 } }) : title ); }; RadioButton.propTypes = { title: _propTypes2.default.node.isRequired, isActive: _propTypes2.default.bool, accessibilityLabel: _propTypes2.default.string, textAccessibilityLabel: _propTypes2.default.string, style: _reactNative.ViewPropTypes.style, textStyle: _reactNative.Text.propTypes.style, activeTextStyle: _reactNative.Text.propTypes.style, onItemPress: _propTypes2.default.func.isRequired, type: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['radio', 'radioCircle']), _propTypes2.default.string]), circleStyle: _reactNative.ViewPropTypes.style }; RadioButton.defaultProps = { isActive: false, style: {}, textStyle: {}, activeTextStyle: {}, type: 'radio', circleStyle: {} }; exports.default = RadioButton;