tuya-panel-kit
Version:
a functional component library for developing tuya device panels!
111 lines (94 loc) • 3.15 kB
JavaScript
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;