UNPKG

@ant-design/react-native

Version:

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

1 lines 6.87 kB
"use strict";"use client";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 _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _icon=_interopRequireDefault(require("../icon"));var _DisabledContext=_interopRequireDefault(require("../provider/DisabledContext"));var _style=require("../style");var _view=_interopRequireDefault(require("../view"));var _index=_interopRequireDefault(require("./style/index"));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 defaultProps={multipleLine:false,wrap:false,delayLongPress:500,onLongPress:function onLongPress(){}};var InternalListItem=function InternalListItem(props,ref){var contextDisabled=_react.default.useContext(_DisabledContext.default);var styles=props.styles,children=props.children,multipleLine=props.multipleLine,thumb=props.thumb,extra=props.extra,arrow=props.arrow,style=props.style,_props$onPress=props.onPress,onPress=_props$onPress===void 0?props.onClick:_props$onPress,wrap=props.wrap,_props$disabled=props.disabled,disabled=_props$disabled===void 0?contextDisabled:_props$disabled,align=props.align,restButtonProps=__rest(props,["styles","children","multipleLine","thumb","extra","arrow","style","onPress","wrap","disabled","align"]);var itemStyles=(0,_style.useTheme)({styles:styles,themeStyles:_index.default});var numberOfLines=(0,_react.useMemo)(function(){if(wrap===false){return{numberOfLines:1};}return{};},[wrap]);var underlayColor=(0,_react.useMemo)(function(){if(!disabled&&onPress){return{underlayColor:_reactNative.StyleSheet.flatten(itemStyles.underlayColor).backgroundColor,activeOpacity:0.5};}return{activeOpacity:1};},[disabled,itemStyles.underlayColor,onPress]);var alignStyle=(0,_react.useMemo)(function(){if(align==='top'){return{alignItems:'flex-start'};}if(align==='bottom'){return{alignItems:'flex-end'};}return{};},[align]);var contentDom=(0,_react.useMemo)(function(){if(typeof children==='string'){return _react.default.createElement(_reactNative.Text,(0,_extends2.default)({style:itemStyles.Content},numberOfLines),children);}if(_react.default.isValidElement(children)){if(typeof children.props.children==='function'){return _react.default.createElement(_view.default,{style:[itemStyles.Content]},children);}return _react.default.createElement(_view.default,(0,_extends2.default)({children:children},children.props,{style:[itemStyles.Content,children.props.style]}));}if(Array.isArray(children)){if(children.some(_react.default.isValidElement)){return _react.default.createElement(_reactNative.View,{style:itemStyles.Content},_react.default.Children.map(children,function(child){return typeof child==='string'?_react.default.createElement(_reactNative.Text,(0,_extends2.default)({style:itemStyles.Content},numberOfLines),child):child;}));}else{return _react.default.createElement(_reactNative.Text,(0,_extends2.default)({style:itemStyles.Content},numberOfLines,{children:children.reduce(function(a,b){return(a||'')+''+(b||'');},'')}));}}return _react.default.createElement(_reactNative.View,{style:itemStyles.Content});},[children,itemStyles.Content,numberOfLines]);var extraDom=(0,_react.useMemo)(function(){if(typeof extra==='string'){return _react.default.createElement(_reactNative.Text,(0,_extends2.default)({style:itemStyles.Extra},numberOfLines),extra);}if(_react.default.isValidElement(extra)){if(typeof extra.props.children==='function'){return _react.default.createElement(_view.default,{style:[itemStyles.Extra]},extra);}return _react.default.createElement(_view.default,(0,_extends2.default)({children:extra},extra.props,{style:[itemStyles.Extra,extra.props.style]}));}if(Array.isArray(extra)){return _react.default.createElement(_reactNative.View,{style:itemStyles.Extra},_react.default.Children.map(extra,function(child){return typeof child==='string'?_react.default.createElement(_reactNative.Text,(0,_extends2.default)({style:itemStyles.Extra},numberOfLines),child):child;}));}},[extra,itemStyles.Extra,numberOfLines]);var arrowDom=(0,_react.useMemo)(function(){var arrEnum={horizontal:_react.default.createElement(_icon.default,{name:"right",style:itemStyles.Arrow}),down:_react.default.createElement(_icon.default,{name:"down",style:itemStyles.ArrowV}),up:_react.default.createElement(_icon.default,{name:"up",style:itemStyles.ArrowV})};if(arrow){return arrEnum[arrow]||_react.default.createElement(_reactNative.View,{style:itemStyles.Arrow});}},[arrow,itemStyles.Arrow,itemStyles.ArrowV]);var itemView=_react.default.createElement(_reactNative.View,{style:[itemStyles.Item,style]},typeof thumb==='string'?_react.default.createElement(_reactNative.Image,{source:{uri:thumb},style:[itemStyles.Thumb,multipleLine&&itemStyles.multipleThumb]}):thumb,_react.default.createElement(_reactNative.View,{style:[itemStyles.Line,multipleLine&&itemStyles.multipleLine,multipleLine&&alignStyle]},contentDom,extraDom,arrowDom));return _react.default.createElement(_reactNative.TouchableHighlight,(0,_extends2.default)({accessible:Boolean(onPress)},underlayColor,restButtonProps,{onPress:onPress,disabled:Boolean(disabled||!onPress),ref:ref}),itemView);};var ListItem=_react.default.forwardRef(InternalListItem);ListItem.defaultProps=defaultProps;ListItem.displayName='ListItem';var _default=_react.default.memo(ListItem);exports.default=_default;