UNPKG

antd-mobile

Version:

基于 React 的移动设计规范实现

107 lines (82 loc) 3.35 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = undefined; var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require('react'); var React = _interopRequireWildcard(_react); var _reactNative = require('react-native'); var _index = require('./style/index'); var _index2 = _interopRequireDefault(_index); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj["default"] = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var PropTypes = React.PropTypes; var Radio = function (_React$Component) { (0, _inherits3["default"])(Radio, _React$Component); function Radio(props, context) { (0, _classCallCheck3["default"])(this, Radio); var _this = (0, _possibleConstructorReturn3["default"])(this, _React$Component.call(this, props, context)); _this.handleClick = function () { if (_this.props.disabled || _this.state.checked) { return; } _this.setState({ checked: true }); if (_this.props.onChange) { _this.props.onChange(true); } }; var checked = 'checked' in props ? props.checked : props.defaultChecked; _this.state = { checked: checked }; return _this; } Radio.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) { if ('checked' in nextProps) { var oldChecked = this.state.checked; if (nextProps.checked === oldChecked) { return; } this.setState({ checked: nextProps.checked }); } }; Radio.prototype.render = function render() { var _props = this.props; var style = _props.style; var disabled = _props.disabled; var checked = this.state.checked; var imgSrc = null; if (checked) { if (disabled) { imgSrc = require('./image/checked_disable.png'); } else { imgSrc = require('./image/checked.png'); } } return React.createElement( _reactNative.TouchableWithoutFeedback, { onPress: this.handleClick }, React.createElement(_reactNative.Image, { source: imgSrc, style: [_index2["default"].icon, style] }) ); }; return Radio; }(React.Component); exports["default"] = Radio; Radio.propTypes = { style: PropTypes.any, checked: PropTypes.bool, defaultChecked: PropTypes.bool, disabled: PropTypes.bool, onChange: PropTypes.func }; module.exports = exports['default'];