UNPKG

@ant-design/react-native

Version:

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

1 lines 4.75 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));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 _reactNativeGestureHandler=require("react-native-gesture-handler");var _Swipeable=_interopRequireDefault(require("react-native-gesture-handler/Swipeable"));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 __rest=void 0&&(void 0).__rest||function(s,e){var t={};for(var p in s){if(Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0)t[p]=s[p];}if(s!=null&&typeof Object.getOwnPropertySymbols==="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++){if(e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i]))t[p[i]]=s[p[i]];}return t;};var SwipeAction=function(_React$Component){(0,_inherits2["default"])(SwipeAction,_React$Component);var _super=_createSuper(SwipeAction);function SwipeAction(){var _this;(0,_classCallCheck2["default"])(this,SwipeAction);_this=_super.apply(this,arguments);_this.updateRef=function(ref){_this.swipeableRow=ref;};_this.close=function(){var _a;(_a=_this.swipeableRow)===null||_a===void 0?void 0:_a.close();};_this.renderActions=function(progress,_dragAnimatedValue){var isLeft=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var _this$props=_this.props,right=_this$props.right,left=_this$props.left,_this$props$buttonWid=_this$props.buttonWidth,buttonWidth=_this$props$buttonWid===void 0?60:_this$props$buttonWid;var buttons=isLeft?left:right;if(!buttons){return null;}var len=buttons.length;var width=buttonWidth*len;return _react["default"].createElement(_reactNative.View,{style:{width:width,flexDirection:_reactNative.I18nManager.isRTL?'row-reverse':'row'}},buttons.map(function(button,i){var x=isLeft?-i*buttonWidth:(len-i)*buttonWidth;var trans=progress.interpolate({inputRange:[0,1],outputRange:[x,0],extrapolate:'clamp'});var pressHandler=function pressHandler(){if(button.disabled){return;}_this.close();if(button.onPress){button.onPress();}};return _react["default"].createElement(_reactNative.Animated.View,{key:i,style:{flex:1,transform:[{translateX:trans}]}},_react["default"].createElement(_reactNativeGestureHandler.RectButton,{style:[styles.rightAction,{backgroundColor:button.backgroundColor}],onPress:pressHandler},_react["default"].isValidElement(button.text)?button.text:_react["default"].createElement(_reactNative.Text,{style:[styles.actionText,button.style,{color:button.color}]},button.text)));}));};return _this;}(0,_createClass2["default"])(SwipeAction,[{key:"render",value:function render(){var _this2=this;var _a=this.props,left=_a.left,right=_a.right,children=_a.children,restProps=__rest(_a,["left","right","children"]);return _react["default"].createElement(_Swipeable["default"],(0,_extends2["default"])({ref:this.updateRef,friction:2,enableTrackpadTwoFingerGesture:true,leftThreshold:30,rightThreshold:40,renderLeftActions:function renderLeftActions(v,d){return _this2.renderActions(v,d,true);},renderRightActions:function renderRightActions(v,d){return _this2.renderActions(v,d,false);}},restProps),children);}}]);return SwipeAction;}(_react["default"].Component);var _default=SwipeAction;exports["default"]=_default;var styles=_reactNative.StyleSheet.create({actionText:{color:'white',fontSize:16,backgroundColor:'transparent',padding:10},rightAction:{alignItems:'center',flex:1,justifyContent:'center'}});