@ant-design/react-native
Version:
基于蚂蚁金服移动设计规范的 React Native 组件库
1 lines • 2.81 kB
JavaScript
;"use client";var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports.CollapsePanelContent=void 0;var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));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;}function useInitialized(check){var initializedRef=(0,_react.useRef)(check);if(check){initializedRef.current=true;}return!!initializedRef.current;}function useShouldRender(active,forceRender,destroyOnClose){var initialized=useInitialized(active);if(forceRender){return true;}if(active){return true;}if(!initialized){return false;}return!destroyOnClose;}var CollapsePanelContent=function CollapsePanelContent(props){var visible=props.visible,children=props.children,style=props.style;var shouldRender=useShouldRender(visible,props.forceRender,props.destroyOnClose);var height=(0,_reactNativeReanimated.useSharedValue)(0);var derivedHeight=(0,_reactNativeReanimated.useDerivedValue)(function(){return(0,_reactNativeReanimated.withSpring)(height.value*Number(visible),{restDisplacementThreshold:0.01,mass:1,stiffness:200,damping:25,overshootClamping:true});});var bodyStyle=(0,_reactNativeReanimated.useAnimatedStyle)(function(){return{height:derivedHeight.value};},[]);return _react.default.createElement(_reactNativeReanimated.default.View,{style:[styles.animatedView,bodyStyle,style]},_react.default.createElement(_reactNative.View,{onLayout:function onLayout(e){height.value=e.nativeEvent.layout.height;},style:styles.wrapper},shouldRender&&children));};exports.CollapsePanelContent=CollapsePanelContent;var styles=_reactNative.StyleSheet.create({wrapper:{width:'100%',position:'absolute'},animatedView:{width:'100%',overflow:'hidden'}});