UNPKG

@ant-design/react-native

Version:

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

1 lines 6.25 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _useMergedState3=_interopRequireDefault(require("rc-util/lib/hooks/useMergedState"));var _react=_interopRequireWildcard(require("react"));var _reactNativeGestureHandler=require("react-native-gesture-handler");var _getLocale=require("../_util/getLocale");var _localeProvider=require("../locale-provider");var _pickerView=_interopRequireDefault(require("../picker-view/picker-view"));var _style=require("../style");var _Popup=_interopRequireDefault(require("./Popup"));var _style2=_interopRequireDefault(require("./style"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||_typeof(obj)!=="object"&&typeof obj!=="function"){return{"default":obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj["default"]=obj;if(cache){cache.set(obj,newObj);}return newObj;}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 RMCPicker=(0,_react.forwardRef)(function(props,ref){var onVisibleChange=props.onVisibleChange,visible=props.visible,children=props.children,okText=props.okText,dismissText=props.dismissText,onChange=props.onChange,onOk=props.onOk,onDismiss=props.onDismiss,onClose=props.onClose,title=props.title,extra=props.extra,disabled=props.disabled,format=props.format,value=props.value,columns=props.columns,handleSelect=props.handleSelect,restProps=__rest(props,["onVisibleChange","visible","children","okText","dismissText","onChange","onOk","onDismiss","onClose","title","extra","disabled","format","value","columns","handleSelect"]);var _useMergedState=(0,_useMergedState3["default"])(false,{value:visible,onChange:function onChange(v){return onVisibleChange===null||onVisibleChange===void 0?void 0:onVisibleChange(v);}}),_useMergedState2=(0,_slicedToArray2["default"])(_useMergedState,2),innerVisible=_useMergedState2[0],setInnerVisible=_useMergedState2[1];var _useState=(0,_react.useState)(extra),_useState2=(0,_slicedToArray2["default"])(_useState,2),innerExtra=_useState2[0],setInnerExtra=_useState2[1];var actions=(0,_react.useMemo)(function(){return{toggle:function toggle(){setInnerVisible(!innerVisible);},open:function open(){setInnerVisible(true);},close:function close(){setInnerVisible(false);onClose===null||onClose===void 0?void 0:onClose();},_updateExtra:function _updateExtra(){setInnerExtra(format===null||format===void 0?void 0:format(columns.reduce(function(cur,next,index){var labelValue=next.find(function(item){return item.value===(value===null||value===void 0?void 0:value[index]);});if(labelValue===null||labelValue===void 0?void 0:labelValue.label){cur.push(labelValue.label);}return cur;},[])));}};},[columns,format,innerVisible,onClose,setInnerVisible,value]);(0,_react.useImperativeHandle)(ref,function(){return actions;});var handleOk=(0,_react.useCallback)(function(){var extend=columns.map(function(column,index){var _a;return(_a=column.find(function(item){return item.value===(value===null||value===void 0?void 0:value[index]);}))!==null&&_a!==void 0?_a:column[0];});var nextValue=extend.map(function(item){return item.value;});onOk===null||onOk===void 0?void 0:onOk(nextValue,{items:extend,columns:columns});onChange===null||onChange===void 0?void 0:onChange(nextValue,{items:extend,columns:columns});actions.close();},[actions,columns,onChange,onOk,value]);var handleDismiss=(0,_react.useCallback)(function(){onDismiss===null||onDismiss===void 0?void 0:onDismiss();actions.close();},[actions,onDismiss]);var _locale=(0,_getLocale.getComponentLocale)(props,(0,_react.useContext)(_localeProvider.LocaleContext),'Picker',function(){return require('./locale/zh_CN');});var renderChildren=function renderChildren(){if(!children){return null;}var child=children;var newChildProps={extra:innerExtra||extra||_locale.extra,disabled:disabled};if(!disabled){newChildProps[props.triggerType]=function(e){if(child.props[props.triggerType]){child.props[props.triggerType](e);}actions.toggle();};}return _react["default"].cloneElement(child,newChildProps);};var styles=(0,_style.useTheme)({styles:props.styles,themeStyles:_style2["default"]});return _react["default"].createElement(_react["default"].Fragment,null,_react["default"].createElement(_Popup["default"],{styles:styles,visible:innerVisible,title:title,okText:okText||_locale.okText,onOk:handleOk,dismissText:dismissText||_locale.dismissText,onDismiss:handleDismiss,onClose:actions.close},innerVisible&&_react["default"].createElement(_reactNativeGestureHandler.GestureHandlerRootView,null,_react["default"].createElement(_pickerView["default"],(0,_extends2["default"])({},restProps,{value:value,columns:columns,handleSelect:handleSelect})))),renderChildren());});RMCPicker.displayName='Picker';RMCPicker.defaultProps={triggerType:'onPress',format:function format(labels){return labels.join(',');}};var _default=RMCPicker;exports["default"]=_default;