@ant-design/react-native
Version:
基于蚂蚁金服移动设计规范的 React Native 组件库
1 lines • 4.54 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _classnames=_interopRequireDefault(require("classnames"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _icon=_interopRequireDefault(require("../icon"));var _style=require("../style");var _index=_interopRequireDefault(require("./style/index"));function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=(0,_getPrototypeOf2["default"])(Derived),result;if(hasNativeReflectConstruct){var NewTarget=(0,_getPrototypeOf2["default"])(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return(0,_possibleConstructorReturn2["default"])(this,result);};}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}var Tag=function(_React$Component){(0,_inherits2["default"])(Tag,_React$Component);var _super=_createSuper(Tag);function Tag(props){var _this;(0,_classCallCheck2["default"])(this,Tag);_this=_super.call(this,props);_this.onPress=function(){var _this$props=_this.props,disabled=_this$props.disabled,onChange=_this$props.onChange;if(disabled){return;}var isSelect=_this.state.selected;_this.setState({selected:!isSelect},function(){if(onChange){onChange(!isSelect);}});};_this.handleLongPress=function(){var _this$props2=_this.props,disabled=_this$props2.disabled,onLongPress=_this$props2.onLongPress;if(disabled){return;}if(onLongPress){onLongPress();}};_this.onTagClose=function(){if(_this.props.onClose){_this.props.onClose();}_this.setState({closed:true},_this.props.afterClose);};_this.state={selected:props.selected,closed:false};return _this;}(0,_createClass2["default"])(Tag,[{key:"UNSAFE_componentWillReceiveProps",value:function UNSAFE_componentWillReceiveProps(nextProps){if(this.props.selected!==nextProps.selected){this.setState({selected:nextProps.selected});}}},{key:"render",value:function render(){var _this2=this;var _this$props3=this.props,children=_this$props3.children,disabled=_this$props3.disabled,small=_this$props3.small,closable=_this$props3.closable,style=_this$props3.style;return _react["default"].createElement(_style.WithTheme,{styles:this.props.styles,themeStyles:_index["default"]},function(styles){var wrapCls=(0,_classnames["default"])({normalWrap:!disabled&&(!_this2.state.selected||small||closable),wrapSmall:small,activeWrap:_this2.state.selected&&!disabled&&!small&&!closable,disabledWrap:disabled}).split(' ').map(function(a){return styles[a];});var textCls=(0,_classnames["default"])({normalText:!disabled&&(!_this2.state.selected||small||closable),smallText:small,activeText:_this2.state.selected&&!disabled&&!small&&!closable,disabledText:disabled}).split(' ').map(function(a){return styles[a];});var closableDom=closable&&!disabled&&!small?_react["default"].createElement(_icon["default"],{onPress:_this2.onTagClose,name:"close",style:styles.close}):null;return!_this2.state.closed?_react["default"].createElement(_reactNative.View,{style:[styles.tag,style]},_react["default"].createElement(_reactNative.TouchableWithoutFeedback,{onPress:_this2.onPress,onLongPress:_this2.handleLongPress},_react["default"].createElement(_reactNative.View,{style:[styles.wrap,wrapCls]},_react["default"].isValidElement(children)?children:_react["default"].createElement(_reactNative.Text,{style:[styles.text,textCls]},children))),closableDom):null;});}}]);return Tag;}(_react["default"].Component);exports["default"]=Tag;Tag.defaultProps={disabled:false,small:false,selected:false,closable:false,onClose:function onClose(){},afterClose:function afterClose(){},onChange:function onChange(){},onLongPress:function onLongPress(){}};