UNPKG

@ant-design/react-native

Version:

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

1 lines 4.21 kB
"use client";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports.TooltipMenu=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _list=_interopRequireDefault(require("../list"));var _style=require("../style");var _Tooltip=_interopRequireDefault(require("./Tooltip"));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=this&&this.__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 TooltipMenu=(0,_react.forwardRef)(function(props,ref){var actions=props.actions,maxCount=props.maxCount,mode=props.mode,onAction=props.onAction,style=props.style,styles=props.styles,restProps=__rest(props,["actions","maxCount","mode","onAction","style","styles"]);var theme=_react.default.useContext(_style.ThemeContext);var innerRef=(0,_react.useRef)(null);(0,_react.useImperativeHandle)(ref,function(){return innerRef.current;},[]);var onPress=(0,_react.useCallback)(function(e){var _a;if(onAction){onAction(e);}(_a=innerRef.current)===null||_a===void 0?void 0:_a.hide();},[onAction]);var overlay=(0,_react.useMemo)(function(){var whetherScroll=Boolean(maxCount&&actions.length>maxCount);var innerHeight=maxCount&&maxCount*theme.list_item_height;return _react.default.createElement(_reactNative.ScrollView,{scrollEnabled:whetherScroll,style:whetherScroll&&{height:innerHeight}},actions.map(function(action,index){var _a;return _react.default.createElement(TooltipMenuItem,{key:(_a=action.key)!==null&&_a!==void 0?_a:index,action:action,index:index,isLastChild:index+1===actions.length,mode:mode,onPress:onPress});}));},[actions,maxCount,mode,onPress,theme.list_item_height]);return _react.default.createElement(_Tooltip.default,(0,_extends2.default)({ref:innerRef,style:[{paddingRight:0},style],styles:styles,mode:mode},restProps,{content:overlay}));});exports.TooltipMenu=TooltipMenu;var TooltipMenuItem=function TooltipMenuItem(props){var action=props.action,isLastChild=props.isLastChild,mode=props.mode,_onPress=props.onPress,styles=props.styles;var theme=_react.default.useContext(_style.ThemeContext);var TooltipStylesMemo=(0,_react.useCallback)(function(){return(0,_style2.default)(theme,mode);},[mode,theme]);var ss=(0,_style.useTheme)({styles:styles,themeStyles:TooltipStylesMemo});var getListItemStyle=(0,_react.useMemo)(function(){return(0,_extends2.default)((0,_extends2.default)({},ss),{Line:_reactNative.StyleSheet.flatten([isLastChild?{borderBottomWidth:0}:{},action.icon?{marginLeft:8}:{},ss.Line])});},[action.icon,isLastChild,ss]);return _react.default.createElement(_list.default.Item,{styles:getListItemStyle,thumb:action.icon,onPress:function onPress(){return _onPress(action);}},action.text);};