UNPKG

@ant-design/react-native

Version:

基于蚂蚁金服移动设计规范的 React Native 组件库

1 lines 4.33 kB
"use client";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 _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));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 _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=(0,_getPrototypeOf2.default)(derived);return(0,_possibleConstructorReturn2.default)(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],(0,_getPrototypeOf2.default)(_this).constructor):derived.apply(_this,args));}var Tag=function(_React$Component){function Tag(props){var _this2;(0,_classCallCheck2.default)(this,Tag);_this2=_callSuper(this,Tag,[props]);_this2.onPress=function(){var _this2$props=_this2.props,disabled=_this2$props.disabled,onChange=_this2$props.onChange;if(disabled){return;}var isSelect=_this2.state.selected;_this2.setState({selected:!isSelect},function(){if(onChange){onChange(!isSelect);}});};_this2.handleLongPress=function(){var _this2$props2=_this2.props,disabled=_this2$props2.disabled,onLongPress=_this2$props2.onLongPress;if(disabled){return;}if(onLongPress){onLongPress();}};_this2.onTagClose=function(){if(_this2.props.onClose){_this2.props.onClose();}_this2.setState({closed:true},_this2.props.afterClose);};_this2.state={selected:props.selected,closed:false};return _this2;}(0,_inherits2.default)(Tag,_React$Component);return(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 _this3=this;var _this$props=this.props,children=_this$props.children,disabled=_this$props.disabled,small=_this$props.small,closable=_this$props.closable,style=_this$props.style;return _react.default.createElement(_style.WithTheme,{styles:this.props.styles,themeStyles:_index.default},function(styles){var wrapCls=(0,_classnames.default)({normalWrap:!disabled&&(!_this3.state.selected||small||closable),wrapSmall:small,activeWrap:_this3.state.selected&&!disabled&&!small&&!closable,disabledWrap:disabled}).split(' ').map(function(a){return styles[a];});var textCls=(0,_classnames.default)({normalText:!disabled&&(!_this3.state.selected||small||closable),smallText:small,activeText:_this3.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:_this3.onTagClose,name:"close",style:styles.close}):null;return!_this3.state.closed?_react.default.createElement(_reactNative.View,{style:[styles.tag,style]},_react.default.createElement(_reactNative.TouchableWithoutFeedback,{onPress:_this3.onPress,onLongPress:_this3.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;});}}]);}(_react.default.Component);Tag.defaultProps={disabled:false,small:false,selected:false,closable:false,onClose:function onClose(){},afterClose:function afterClose(){},onChange:function onChange(){},onLongPress:function onLongPress(){}};var _default=Tag;exports.default=_default;