UNPKG

@ant-design/react-native

Version:

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

1 lines 5.84 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));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 _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _style=require("../style");var _getLocale=require("../_util/getLocale");var _zh_CN=_interopRequireDefault(require("./locale/zh_CN"));var _Modal=_interopRequireDefault(require("./Modal"));var _prompt=_interopRequireDefault(require("./style/prompt"));var _localeProvider=require("../locale-provider");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 PropmptContainer=function(_React$Component){(0,_inherits2["default"])(PropmptContainer,_React$Component);var _super=_createSuper(PropmptContainer);function PropmptContainer(props){var _this;(0,_classCallCheck2["default"])(this,PropmptContainer);_this=_super.call(this,props);_this.onBackAndroid=function(){var onBackHandler=_this.props.onBackHandler;if(typeof onBackHandler==='function'){var flag=onBackHandler();if(flag){_this.onClose();}return flag;}if(_this.state.visible){_this.onClose();return true;}return false;};_this.onClose=function(){_this.setState({visible:false});};_this.state={visible:true,text:props.defaultValue,password:props.type==='secure-text'?props.defaultValue:''};return _this;}(0,_createClass2["default"])(PropmptContainer,[{key:"onChangeText",value:function onChangeText(type,value){this.setState((0,_defineProperty2["default"])({},type,value));}},{key:"render",value:function render(){var _this2=this;var _this$props=this.props,title=_this$props.title,onAnimationEnd=_this$props.onAnimationEnd,message=_this$props.message,type=_this$props.type,actions=_this$props.actions,placeholders=_this$props.placeholders;var _this$state=this.state,text=_this$state.text,password=_this$state.password;var getArgs=function getArgs(func){if(type==='login-password'){return func.apply(this,[text,password]);}else if(type==='secure-text'){return func.apply(this,[password]);}return func.apply(this,[text]);};var _locale=(0,_getLocale.getComponentLocale)(this.props,this.context,'Modal',function(){return _zh_CN["default"];});var callbacks;if(typeof actions==='function'){callbacks=[{text:_locale.cancelText,style:'cancel',onPress:function onPress(){}},{text:_locale.okText,onPress:function onPress(){return getArgs(actions);}}];}else{callbacks=actions.map(function(item){return{text:item.text,onPress:function onPress(){if(item.onPress){return getArgs(item.onPress);}},style:item.style||{}};});}var footer=callbacks.map(function(button){var orginPress=button.onPress||function(){};button.onPress=function(){var res=orginPress();if(res&&res.then){res.then(function(){_this2.onClose();});}else{_this2.onClose();}};return button;});return _react["default"].createElement(_style.WithTheme,{styles:this.props.styles,themeStyles:_prompt["default"]},function(styles){var firstStyle=[styles.inputWrapper];var lastStyle=[styles.inputWrapper];if(type==='login-password'){firstStyle.push(styles.inputFirst);lastStyle.push(styles.inputLast);}else if(type==='secure-text'){lastStyle.push(styles.inputFirst);lastStyle.push(styles.inputLast);}else{firstStyle.push(styles.inputFirst);firstStyle.push(styles.inputLast);}return _react["default"].createElement(_Modal["default"],{transparent:true,title:title,visible:_this2.state.visible,footer:footer,onAnimationEnd:onAnimationEnd,onRequestClose:_this2.onBackAndroid},message?_react["default"].createElement(_reactNative.Text,{style:styles.message},message):null,_react["default"].createElement(_reactNative.View,{style:styles.inputGroup},type!=='secure-text'&&_react["default"].createElement(_reactNative.View,{style:firstStyle},_react["default"].createElement(_reactNative.TextInput,{autoFocus:true,onChangeText:function onChangeText(value){_this2.onChangeText('text',value);},defaultValue:_this2.state.text,style:styles.input,underlineColorAndroid:"transparent",placeholder:placeholders[0]})),(type==='secure-text'||type==='login-password')&&_react["default"].createElement(_reactNative.View,{style:lastStyle},_react["default"].createElement(_reactNative.TextInput,{autoFocus:true,secureTextEntry:true,onChangeText:function onChangeText(value){_this2.onChangeText('password',value);},defaultValue:_this2.state.password,style:styles.input,underlineColorAndroid:"transparent",placeholder:placeholders[1]}))));});}}]);return PropmptContainer;}(_react["default"].Component);exports["default"]=PropmptContainer;PropmptContainer.defaultProps={type:'default',defaultValue:''};PropmptContainer.contextType=_localeProvider.LocaleContext;