@xhsreds/reds-rn-next 0.10.1-feat-sheets-anim202512041203 → 0.10.1-feat-sheets-anim202512041344
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coverage/.tmp/coverage-0.json +1 -1
- package/coverage/.tmp/coverage-1.json +1 -1
- package/coverage/.tmp/coverage-10.json +1 -1
- package/coverage/.tmp/coverage-11.json +1 -1
- package/coverage/.tmp/coverage-12.json +1 -1
- package/coverage/.tmp/coverage-13.json +1 -1
- package/coverage/.tmp/coverage-14.json +1 -1
- package/coverage/.tmp/coverage-15.json +1 -1
- package/coverage/.tmp/coverage-16.json +1 -1
- package/coverage/.tmp/coverage-17.json +1 -1
- package/coverage/.tmp/coverage-2.json +1 -1
- package/coverage/.tmp/coverage-24.json +1 -1
- package/coverage/.tmp/coverage-25.json +1 -1
- package/coverage/.tmp/coverage-26.json +1 -1
- package/coverage/.tmp/coverage-27.json +1 -1
- package/coverage/.tmp/coverage-3.json +1 -1
- package/coverage/.tmp/coverage-30.json +1 -1
- package/coverage/.tmp/coverage-31.json +1 -1
- package/coverage/.tmp/coverage-32.json +1 -1
- package/coverage/.tmp/coverage-33.json +1 -1
- package/coverage/.tmp/coverage-34.json +1 -1
- package/coverage/.tmp/coverage-35.json +1 -1
- package/coverage/.tmp/coverage-37.json +1 -1
- package/coverage/.tmp/coverage-38.json +1 -1
- package/coverage/.tmp/coverage-4.json +1 -1
- package/coverage/.tmp/coverage-41.json +1 -1
- package/coverage/.tmp/coverage-5.json +1 -1
- package/coverage/.tmp/coverage-7.json +1 -1
- package/coverage/.tmp/coverage-8.json +1 -1
- package/coverage/.tmp/coverage-9.json +1 -1
- package/lib/cjs/_chunks/47jfgoRG.js.map +1 -1
- package/lib/cjs/components/Sheets/AnimatedSheets.js +8 -9
- package/lib/cjs/components/Sheets/AnimatedSheets.js.map +1 -1
- package/lib/esm/_chunks/DMjPllnU.js.map +1 -1
- package/lib/esm/components/Sheets/AnimatedSheets.js +8 -9
- package/lib/esm/components/Sheets/AnimatedSheets.js.map +1 -1
- package/lib/src/components/Sheets/Sheets.d.ts +1 -0
- package/lib/src/components/Sheets/interface/index.d.ts +4 -0
- package/lib/types/components/Sheets/Sheets.d.ts +1 -0
- package/lib/types/components/Sheets/interface/index.d.ts +4 -0
- package/package.json +1 -1
- package/src/components/Sheets/AnimatedSheets.tsx +4 -4
- package/src/components/Sheets/doc/index.mdx +5 -3
- package/src/components/Sheets/interface/index.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimatedSheets.js","sources":["../../../../src/components/Sheets/AnimatedSheets.tsx"],"sourcesContent":["import React, { useState, useRef, useMemo, useEffect, useCallback, forwardRef, useImperativeHandle } from \"react\";\nimport { alwaysColor } from \"@xhsreds/reds-token-next\";\nimport {\n View,\n TouchableOpacity,\n Text,\n Animated,\n LayoutChangeEvent,\n PanResponder,\n Dimensions,\n Easing,\n Platform,\n StatusBar,\n TouchableWithoutFeedback,\n} from \"react-native\";\nimport {\n RedsSheets,\n SheetsDefaultProps,\n SheetsMaskMode,\n SheetsType,\n SheetsIconType,\n SheetsActionType,\n SheetsSize,\n} from \"./interface/index\";\nimport { useThemeColor, useColorMode } from \"../ConfigProvider\";\nimport styles from \"./styles\";\nimport { Button } from \"../Button\";\nimport { Icon, IconType } from \"../Icon\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nimport { useLanguage } from \"../LanguageProvider\";\nimport { getSafeAreaInsets } from \"../StatusBar\";\nimport { CancelM } from \"@xhs/reder-icon-svg-ReDs_icon\";\n\nconst AnimatedSheets = forwardRef((props: RedsSheets, ref) => {\n useMounted(\"AnimatedSheets\");\n const cancelKey = useLanguage(\"componentKey\", \"cancelKey\");\n const sureKey = useLanguage(\"componentKey\", \"sureKey\");\n const {\n visible,\n onCancel,\n onConfirm,\n onAnimatedOut,\n onImmediateCancel,\n onImmediateConfirm,\n isMaskClose,\n children,\n label,\n mask,\n maskMode,\n cancelType,\n closeType,\n cancelText,\n closeText,\n sheetsType,\n cancel,\n close,\n iconType,\n size,\n openAnimation,\n closeAnimation,\n } = props;\n\n const themeColor = useThemeColor();\n\n const colorMode = useColorMode();\n\n const [screenHeight, setScreenHeight] = useState(Dimensions.get(\"screen\").height);\n\n /**\n * Sheets容器高度动画\n */\n const [sheetsHeight, setSheetsHeight] = useState(34);\n\n const [isDragging, setIsDragging] = useState(false);\n\n const [_visible, setVisible] = useState(false);\n\n const [showMask, setShowMask] = useState(false);\n\n /**\n * Sheets容器位置动画\n */\n const [translateY] = useState(new Animated.Value(Dimensions.get(\"screen\").height));\n\n /**\n * Sheets容器child内容高度\n */\n const childHeightRef = useRef(0);\n\n /**\n * 底部操作区高度\n */\n const [actionHeight, setActionHeight] = useState(0);\n\n /**\n * 标题区域高度\n */\n const [labelHeight, setLabelHeight] = useState(0);\n\n /**\n * child高度\n */\n const [childHeight, setChildHeight] = useState(0);\n\n /**\n * 背景颜色\n */\n const opacityValue = useRef(new Animated.Value(0)).current;\n /**\n * 是否展示标题\n */\n const showLabel = useMemo(() => {\n return sheetsType === SheetsType.normal && (cancel || close || label);\n }, [sheetsType, cancel, close, label]);\n\n /**\n * 是否展示底部操作栏\n */\n const showAction = useMemo(() => {\n return sheetsType === SheetsType.action && (cancel || close);\n }, [sheetsType, cancel, close]);\n\n /**\n * 关闭Sheets\n */\n const handleMask = () => {\n if (!isMaskClose || !mask) {\n return;\n }\n onImmediateCancel?.();\n // 动画结束关闭弹窗\n onCancel?.();\n };\n\n /**\n * 确定 or 完成\n */\n const handleConfirm = () => {\n onImmediateConfirm?.();\n // 动画结束关闭弹窗\n onConfirm?.();\n };\n\n /**\n * 返回 or 取消\n */\n const handleCancel = () => {\n onImmediateCancel?.();\n // 动画结束关闭弹窗\n onCancel?.();\n };\n\n /**\n * 计算子容器高度\n * @param evt LayoutChangeEvent\n */\n const handleLayout = (evt: LayoutChangeEvent) => {\n if (isDragging) return;\n const { height } = evt.nativeEvent.layout;\n setChildHeight(height);\n };\n\n /**\n * 计算底部操作区高度\n * @param evt\n */\n const handleActionLayout = (evt: LayoutChangeEvent) => {\n const { height } = evt.nativeEvent.layout;\n setActionHeight(height);\n };\n\n /**\n * 计算标题高度\n * @param evt\n */\n const handleLabelLayout = (evt: LayoutChangeEvent) => {\n const { height } = evt.nativeEvent.layout;\n setLabelHeight(height);\n };\n\n // 添加动画显示和隐藏的函数\n const animateIn = () => {\n Animated.timing(translateY, {\n toValue: 0, // 移动到目标位置(顶部)\n useNativeDriver: true,\n duration: openAnimation?.duration ?? 150,\n easing: Easing.ease,\n }).start();\n };\n\n /**\n * 外层容器高度变化\n */\n useEffect(() => {\n if (isDragging || !childHeight) return;\n const factHeight = actionHeight + labelHeight + childHeight;\n const fullScreenHeight = screenHeight || Dimensions.get(\"screen\").height;\n const halfScreenHeight = Math.floor(fullScreenHeight / 2);\n const threeQuaterScreenHeight = Math.floor(fullScreenHeight * 0.75);\n // 适配底部bottom\n const isIos = Platform.OS === \"ios\";\n const SAFE_BOTTOM = getSafeAreaInsets().bottom;\n // 适配底部bottom\n let calculateHeight = 0;\n if (props.animatedSheetsSize === \"fixed\") {\n calculateHeight = props.autoSize\n ? props.autoSize\n : size === SheetsSize.half\n ? halfScreenHeight\n : size === SheetsSize.threeQuater\n ? threeQuaterScreenHeight\n : fullScreenHeight;\n } else {\n calculateHeight =\n sheetsType !== SheetsType.dragable\n ? size === SheetsSize.auto\n ? factHeight\n ? Math.min(fullScreenHeight, factHeight)\n : fullScreenHeight\n : size === SheetsSize.half\n ? factHeight\n ? Math.min(halfScreenHeight, factHeight)\n : halfScreenHeight\n : size === SheetsSize.threeQuater\n ? factHeight\n ? Math.min(threeQuaterScreenHeight, factHeight)\n : threeQuaterScreenHeight\n : factHeight\n ? Math.min(fullScreenHeight, factHeight)\n : fullScreenHeight\n : factHeight;\n childHeightRef.current = calculateHeight;\n }\n setSheetsHeight(\n props.sheetsStyle?.backgroundColor === \"transparent\"\n ? calculateHeight\n : calculateHeight + (SAFE_BOTTOM || (isIos ? 34 : 20)),\n );\n }, [actionHeight, labelHeight, childHeight, props.animatedSheetsSize, props.autoSize, size, screenHeight]);\n\n useEffect(() => {\n if (mask) {\n if (_visible) {\n setShowMask(true);\n }\n Animated.timing(opacityValue, {\n toValue: _visible && mask ? 1 : 0,\n duration: _visible ? openAnimation?.duration ?? 150 : closeAnimation?.duration ?? 150,\n useNativeDriver: true, // 使用原生驱动\n easing: Easing.linear, // 动画缓动函数\n }).start(() => {\n setShowMask(_visible);\n });\n }\n }, [_visible, mask]);\n\n /**\n * 手势监听\n */\n const panResponder = useRef(\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => sheetsType === SheetsType.dragable,\n onPanResponderGrant: () => {\n // Set dragging to true when drag starts\n setIsDragging(true);\n },\n onPanResponderMove: useCallback(\n (_: any, gestureState: any) => {\n const fullScreenHeight = screenHeight || Dimensions.get(\"screen\").height;\n const halfScreenHeight = Math.floor(fullScreenHeight / 2);\n const threeQuaterScreenHeight = Math.floor(fullScreenHeight * 0.75);\n const maxHeight =\n size === SheetsSize.auto\n ? fullScreenHeight\n : size === SheetsSize.half\n ? halfScreenHeight\n : size === SheetsSize.threeQuater\n ? threeQuaterScreenHeight\n : fullScreenHeight;\n const newHeight = Math.min(\n maxHeight,\n Math.max(childHeightRef.current, childHeightRef.current - gestureState.dy),\n );\n setSheetsHeight(newHeight);\n },\n [size, childHeightRef.current],\n ),\n onPanResponderRelease: () => {\n // Set dragging to false when drag ends\n setIsDragging(false);\n },\n }),\n ).current;\n\n /** icon wrapper */\n const iconWrapper = (type: string) => {\n return iconType === SheetsIconType.bg ? (\n <TouchableWithoutFeedback\n onPress={() => {\n type === \"confirm\" ? handleConfirm() : handleCancel();\n }}\n >\n <View style={[styles.iconBg, { backgroundColor: themeColor.Disabled }]}>\n {type === \"confirm\" ? (\n <Icon icon={CancelM} size={20} onClick={handleConfirm} fill={\"rgba(255,255,255,1)\"} />\n ) : (\n <Icon icon={ArrowLeft} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n )}\n </View>\n </TouchableWithoutFeedback>\n ) : type === \"confirm\" ? (\n <Icon icon={CancelM} size={20} onClick={handleConfirm} fill={\"rgba(0,0,0,1)\"} />\n ) : (\n <Icon icon={ArrowLeft} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n );\n };\n\n /** 监听屏幕变化 */\n useEffect(() => {\n const dimensionListener = Dimensions.addEventListener(\"change\", ({ screen: { height } }) => {\n setScreenHeight(height);\n });\n // 清理函数,移除监听器\n return () => {\n dimensionListener.remove();\n };\n }, []);\n\n /** block占位 */\n const Block = () => {\n return <View style={styles.block} />;\n };\n\n const ArrowLeft = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/fb5b21a7cce47ddb6a0e298c1f362f1486824615.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/c4c4ea8f2a3c991e0d17d327466e7a31389e2ba2.png\";\n }\n }, [colorMode]);\n\n const Close = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/e5021b86d9477351022f6f91e20e735e2074283f.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/612362486f95774c1dbdedd48318f969e35d810d.png\";\n }\n }, [colorMode]);\n\n useImperativeHandle(ref, () => ({\n animateOut: (fn: any) => {\n Animated.timing(translateY, {\n toValue: screenHeight || Dimensions.get(\"screen\").height, // 移动到屏幕底部\n useNativeDriver: true,\n duration: closeAnimation?.duration ?? 150,\n easing: Easing.ease,\n }).start((data) => {\n if (data.finished) {\n onAnimatedOut?.();\n setVisible(false);\n fn?.();\n translateY.setValue(screenHeight || Dimensions.get(\"screen\").height);\n }\n });\n },\n }));\n\n // 兼容setVisible方式的关闭动画\n useEffect(() => {\n if (!visible) {\n Animated.timing(translateY, {\n toValue: screenHeight || Dimensions.get(\"screen\").height, // 移动到屏幕底部\n useNativeDriver: true,\n duration: closeAnimation?.duration ?? 150,\n easing: Easing.ease,\n }).start((data) => {\n if (data.finished) {\n onAnimatedOut?.();\n setVisible(false);\n translateY.setValue(screenHeight || Dimensions.get(\"screen\").height);\n }\n });\n } else {\n setVisible(true);\n animateIn();\n }\n }, [visible]);\n\n return (\n <>\n {showMask ? (\n <TouchableWithoutFeedback onPress={handleMask}>\n <Animated.View\n testID=\"mask\"\n style={[\n styles.mask,\n { backgroundColor: maskMode === SheetsMaskMode.light ? alwaysColor.MaskBg : \"rgba(0,0,0,0.8)\" },\n props.maskStyle,\n { opacity: opacityValue },\n ]}\n ></Animated.View>\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n <Animated.View\n testID=\"Sheets\"\n style={[\n styles.picker,\n { backgroundColor: themeColor.Bg2 },\n {\n height: sheetsHeight,\n transform: [{ translateY }],\n },\n { zIndex: props.zIndex },\n props.sheetsStyle,\n ]}\n >\n {props.header ? <View onLayout={handleLabelLayout}>{props.header}</View> : <></>}\n {/** normal */}\n {showLabel && !props.header ? (\n <View\n style={[\n props.headlerLayout === \"center\" ? styles.labelContainer : styles.leftLabelContainer,\n { backgroundColor: themeColor.Bg2 },\n props.headerStyle,\n ]}\n onLayout={handleLabelLayout}\n >\n {!cancel ? (\n props.headlerLayout === \"center\" ? (\n <Block />\n ) : (\n <></>\n )\n ) : (\n <TouchableOpacity onPress={handleCancel} activeOpacity={1}>\n {cancelType === SheetsActionType.text ? (\n <Text style={[styles.cancel, { color: themeColor.Title }]} testID=\"cancel\">\n {cancelText || cancelKey}\n </Text>\n ) : (\n iconWrapper(\"cancel\")\n )}\n </TouchableOpacity>\n )}\n {label ? (\n <Text style={[styles.label, { color: themeColor.Title }]}>\n {label}\n {showMask}\n </Text>\n ) : (\n <></>\n )}\n {!close ? (\n props.headlerLayout === \"center\" ? (\n <Block />\n ) : (\n <></>\n )\n ) : (\n <TouchableOpacity onPress={handleConfirm} activeOpacity={1}>\n {closeType === SheetsActionType.text ? (\n <View>\n <Text\n style={[\n styles.confirm,\n { color: themeColor.Primary },\n { elevation: 0, shadowColor: \"transparent\" },\n ]}\n testID=\"close\"\n >\n {closeText || sureKey}\n </Text>\n </View>\n ) : (\n iconWrapper(\"confirm\")\n )}\n </TouchableOpacity>\n )}\n </View>\n ) : (\n <></>\n )}\n\n {/** 拖拽按钮 */}\n {sheetsType === SheetsType.dragable && !props.header ? (\n <Animated.View style={[styles.dragableContainer]} {...panResponder.panHandlers} testID={\"draggable\"}>\n <View style={[styles.dragable, { backgroundColor: themeColor.Fill3 }]} />\n </Animated.View>\n ) : (\n <></>\n )}\n\n <View onLayout={handleLayout}>{children}</View>\n\n {/** action */}\n {showAction ? (\n <View style={[styles.actionContainer]} onLayout={handleActionLayout}>\n {cancel ? (\n <View style={styles.action}>\n <Button block onClick={handleCancel}>\n {cancelText || cancelKey}\n </Button>\n </View>\n ) : (\n <></>\n )}\n {close ? (\n <View style={styles.action}>\n <Button block onClick={handleConfirm} type=\"primary\">\n {closeText || sureKey}\n </Button>\n </View>\n ) : (\n <></>\n )}\n </View>\n ) : (\n <></>\n )}\n </Animated.View>\n </>\n );\n});\n// @ts-ignore\nAnimatedSheets.defaultProps = SheetsDefaultProps;\n\nexport default AnimatedSheets;\n"],"names":["AnimatedSheets","forwardRef","props","ref","useMounted","cancelKey","useLanguage","sureKey","visible","onCancel","onConfirm","onAnimatedOut","onImmediateCancel","onImmediateConfirm","isMaskClose","children","label","mask","maskMode","cancelType","closeType","cancelText","closeText","sheetsType","cancel","close","iconType","size","openAnimation","closeAnimation","themeColor","useThemeColor","colorMode","useColorMode","_useState","useState","Dimensions","get","height","_useState2","_slicedToArray","screenHeight","setScreenHeight","_useState3","_useState4","sheetsHeight","setSheetsHeight","_useState5","_useState6","isDragging","setIsDragging","_useState7","_useState8","_visible","setVisible","_useState9","_useState0","showMask","setShowMask","_useState1","Animated","Value","_useState10","translateY","childHeightRef","useRef","_useState11","_useState12","actionHeight","setActionHeight","_useState13","_useState14","labelHeight","setLabelHeight","_useState15","_useState16","childHeight","setChildHeight","opacityValue","current","showLabel","useMemo","SheetsType","normal","showAction","action","handleMask","handleConfirm","handleCancel","handleLayout","evt","nativeEvent","layout","handleActionLayout","handleLabelLayout","animateIn","_openAnimation$durati","timing","toValue","useNativeDriver","duration","easing","Easing","ease","start","useEffect","_props$sheetsStyle","factHeight","fullScreenHeight","halfScreenHeight","Math","floor","threeQuaterScreenHeight","isIos","Platform","OS","SAFE_BOTTOM","getSafeAreaInsets","bottom","calculateHeight","animatedSheetsSize","autoSize","SheetsSize","half","threeQuater","dragable","auto","min","sheetsStyle","backgroundColor","_openAnimation$durati2","_closeAnimation$durat","linear","panResponder","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","useCallback","_","gestureState","maxHeight","newHeight","max","dy","onPanResponderRelease","iconWrapper","type","SheetsIconType","bg","React","createElement","TouchableWithoutFeedback","onPress","View","style","styles","iconBg","Disabled","Icon","icon","CancelM","onClick","fill","ArrowLeft","IconType","image","dimensionListener","addEventListener","_ref","screen","remove","Block","block","useImperativeHandle","animateOut","fn","_closeAnimation$durat2","data","finished","setValue","_closeAnimation$durat3","Fragment","testID","SheetsMaskMode","light","alwaysColor","MaskBg","maskStyle","opacity","picker","Bg2","transform","zIndex","header","onLayout","headlerLayout","labelContainer","leftLabelContainer","headerStyle","TouchableOpacity","activeOpacity","SheetsActionType","text","Text","color","Title","confirm","Primary","elevation","shadowColor","_objectSpread","dragableContainer","panHandlers","Fill3","actionContainer","Button","defaultProps","SheetsDefaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AnimatedSheets.js","sources":["../../../../src/components/Sheets/AnimatedSheets.tsx"],"sourcesContent":["import React, { useState, useRef, useMemo, useEffect, useCallback, forwardRef, useImperativeHandle } from \"react\";\nimport { alwaysColor } from \"@xhsreds/reds-token-next\";\nimport {\n View,\n TouchableOpacity,\n Text,\n Animated,\n LayoutChangeEvent,\n PanResponder,\n Dimensions,\n Easing,\n Platform,\n StatusBar,\n TouchableWithoutFeedback,\n} from \"react-native\";\nimport {\n RedsSheets,\n SheetsDefaultProps,\n SheetsMaskMode,\n SheetsType,\n SheetsIconType,\n SheetsActionType,\n SheetsSize,\n} from \"./interface/index\";\nimport { useThemeColor, useColorMode } from \"../ConfigProvider\";\nimport styles from \"./styles\";\nimport { Button } from \"../Button\";\nimport { Icon, IconType } from \"../Icon\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nimport { useLanguage } from \"../LanguageProvider\";\nimport { getSafeAreaInsets } from \"../StatusBar\";\nimport { CancelM } from \"@xhs/reder-icon-svg-ReDs_icon\";\n\nconst AnimatedSheets = forwardRef((props: RedsSheets, ref) => {\n useMounted(\"AnimatedSheets\");\n const cancelKey = useLanguage(\"componentKey\", \"cancelKey\");\n const sureKey = useLanguage(\"componentKey\", \"sureKey\");\n const {\n visible,\n onCancel,\n onConfirm,\n onAnimatedOut,\n onImmediateCancel,\n onImmediateConfirm,\n isMaskClose,\n children,\n label,\n mask,\n maskMode,\n cancelType,\n closeType,\n cancelText,\n closeText,\n sheetsType,\n cancel,\n close,\n iconType,\n size,\n openAnimation,\n closeAnimation,\n } = props;\n\n const themeColor = useThemeColor();\n\n const colorMode = useColorMode();\n\n const [screenHeight, setScreenHeight] = useState(Dimensions.get(\"screen\").height);\n\n /**\n * Sheets容器高度动画\n */\n const [sheetsHeight, setSheetsHeight] = useState(34);\n\n const [isDragging, setIsDragging] = useState(false);\n\n const [_visible, setVisible] = useState(false);\n\n const [showMask, setShowMask] = useState(false);\n\n /**\n * Sheets容器位置动画\n */\n const [translateY] = useState(new Animated.Value(Dimensions.get(\"screen\").height));\n\n /**\n * Sheets容器child内容高度\n */\n const childHeightRef = useRef(0);\n\n /**\n * 底部操作区高度\n */\n const [actionHeight, setActionHeight] = useState(0);\n\n /**\n * 标题区域高度\n */\n const [labelHeight, setLabelHeight] = useState(0);\n\n /**\n * child高度\n */\n const [childHeight, setChildHeight] = useState(0);\n\n /**\n * 背景颜色\n */\n const opacityValue = useRef(new Animated.Value(0)).current;\n /**\n * 是否展示标题\n */\n const showLabel = useMemo(() => {\n return sheetsType === SheetsType.normal && (cancel || close || label);\n }, [sheetsType, cancel, close, label]);\n\n /**\n * 是否展示底部操作栏\n */\n const showAction = useMemo(() => {\n return sheetsType === SheetsType.action && (cancel || close);\n }, [sheetsType, cancel, close]);\n\n /**\n * 关闭Sheets\n */\n const handleMask = () => {\n if (!isMaskClose || !mask) {\n return;\n }\n onImmediateCancel?.();\n // 动画结束关闭弹窗\n onCancel?.();\n };\n\n /**\n * 确定 or 完成\n */\n const handleConfirm = () => {\n onImmediateConfirm?.();\n // 动画结束关闭弹窗\n onConfirm?.();\n };\n\n /**\n * 返回 or 取消\n */\n const handleCancel = () => {\n onImmediateCancel?.();\n // 动画结束关闭弹窗\n onCancel?.();\n };\n\n /**\n * 计算子容器高度\n * @param evt LayoutChangeEvent\n */\n const handleLayout = (evt: LayoutChangeEvent) => {\n if (isDragging) return;\n const { height } = evt.nativeEvent.layout;\n setChildHeight(height);\n };\n\n /**\n * 计算底部操作区高度\n * @param evt\n */\n const handleActionLayout = (evt: LayoutChangeEvent) => {\n const { height } = evt.nativeEvent.layout;\n setActionHeight(height);\n };\n\n /**\n * 计算标题高度\n * @param evt\n */\n const handleLabelLayout = (evt: LayoutChangeEvent) => {\n const { height } = evt.nativeEvent.layout;\n setLabelHeight(height);\n };\n\n // 添加动画显示和隐藏的函数\n const animateIn = () => {\n Animated.timing(translateY, {\n toValue: 0, // 移动到目标位置(顶部)\n useNativeDriver: true,\n duration: openAnimation?.duration ?? 150,\n easing: openAnimation?.easing ?? Easing.ease,\n }).start();\n };\n\n /**\n * 外层容器高度变化\n */\n useEffect(() => {\n if (isDragging || !childHeight) return;\n const factHeight = actionHeight + labelHeight + childHeight;\n const fullScreenHeight = screenHeight || Dimensions.get(\"screen\").height;\n const halfScreenHeight = Math.floor(fullScreenHeight / 2);\n const threeQuaterScreenHeight = Math.floor(fullScreenHeight * 0.75);\n // 适配底部bottom\n const isIos = Platform.OS === \"ios\";\n const SAFE_BOTTOM = getSafeAreaInsets().bottom;\n // 适配底部bottom\n let calculateHeight = 0;\n if (props.animatedSheetsSize === \"fixed\") {\n calculateHeight = props.autoSize\n ? props.autoSize\n : size === SheetsSize.half\n ? halfScreenHeight\n : size === SheetsSize.threeQuater\n ? threeQuaterScreenHeight\n : fullScreenHeight;\n } else {\n calculateHeight =\n sheetsType !== SheetsType.dragable\n ? size === SheetsSize.auto\n ? factHeight\n ? Math.min(fullScreenHeight, factHeight)\n : fullScreenHeight\n : size === SheetsSize.half\n ? factHeight\n ? Math.min(halfScreenHeight, factHeight)\n : halfScreenHeight\n : size === SheetsSize.threeQuater\n ? factHeight\n ? Math.min(threeQuaterScreenHeight, factHeight)\n : threeQuaterScreenHeight\n : factHeight\n ? Math.min(fullScreenHeight, factHeight)\n : fullScreenHeight\n : factHeight;\n childHeightRef.current = calculateHeight;\n }\n setSheetsHeight(\n props.sheetsStyle?.backgroundColor === \"transparent\"\n ? calculateHeight\n : calculateHeight + (SAFE_BOTTOM || (isIos ? 34 : 20)),\n );\n }, [actionHeight, labelHeight, childHeight, props.animatedSheetsSize, props.autoSize, size, screenHeight]);\n\n useEffect(() => {\n if (mask) {\n if (_visible) {\n setShowMask(true);\n }\n Animated.timing(opacityValue, {\n toValue: _visible && mask ? 1 : 0,\n duration: _visible ? openAnimation?.duration ?? 150 : closeAnimation?.duration ?? 150,\n useNativeDriver: true, // 使用原生驱动\n easing: _visible ? openAnimation?.easing ?? Easing.linear : closeAnimation?.easing ?? Easing.linear,\n }).start(() => {\n setShowMask(_visible);\n });\n }\n }, [_visible, mask]);\n\n /**\n * 手势监听\n */\n const panResponder = useRef(\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => sheetsType === SheetsType.dragable,\n onPanResponderGrant: () => {\n // Set dragging to true when drag starts\n setIsDragging(true);\n },\n onPanResponderMove: useCallback(\n (_: any, gestureState: any) => {\n const fullScreenHeight = screenHeight || Dimensions.get(\"screen\").height;\n const halfScreenHeight = Math.floor(fullScreenHeight / 2);\n const threeQuaterScreenHeight = Math.floor(fullScreenHeight * 0.75);\n const maxHeight =\n size === SheetsSize.auto\n ? fullScreenHeight\n : size === SheetsSize.half\n ? halfScreenHeight\n : size === SheetsSize.threeQuater\n ? threeQuaterScreenHeight\n : fullScreenHeight;\n const newHeight = Math.min(\n maxHeight,\n Math.max(childHeightRef.current, childHeightRef.current - gestureState.dy),\n );\n setSheetsHeight(newHeight);\n },\n [size, childHeightRef.current],\n ),\n onPanResponderRelease: () => {\n // Set dragging to false when drag ends\n setIsDragging(false);\n },\n }),\n ).current;\n\n /** icon wrapper */\n const iconWrapper = (type: string) => {\n return iconType === SheetsIconType.bg ? (\n <TouchableWithoutFeedback\n onPress={() => {\n type === \"confirm\" ? handleConfirm() : handleCancel();\n }}\n >\n <View style={[styles.iconBg, { backgroundColor: themeColor.Disabled }]}>\n {type === \"confirm\" ? (\n <Icon icon={CancelM} size={20} onClick={handleConfirm} fill={\"rgba(255,255,255,1)\"} />\n ) : (\n <Icon icon={ArrowLeft} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n )}\n </View>\n </TouchableWithoutFeedback>\n ) : type === \"confirm\" ? (\n <Icon icon={CancelM} size={20} onClick={handleConfirm} fill={\"rgba(0,0,0,1)\"} />\n ) : (\n <Icon icon={ArrowLeft} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n );\n };\n\n /** 监听屏幕变化 */\n useEffect(() => {\n const dimensionListener = Dimensions.addEventListener(\"change\", ({ screen: { height } }) => {\n setScreenHeight(height);\n });\n // 清理函数,移除监听器\n return () => {\n dimensionListener.remove();\n };\n }, []);\n\n /** block占位 */\n const Block = () => {\n return <View style={styles.block} />;\n };\n\n const ArrowLeft = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/fb5b21a7cce47ddb6a0e298c1f362f1486824615.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/c4c4ea8f2a3c991e0d17d327466e7a31389e2ba2.png\";\n }\n }, [colorMode]);\n\n const Close = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/e5021b86d9477351022f6f91e20e735e2074283f.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/612362486f95774c1dbdedd48318f969e35d810d.png\";\n }\n }, [colorMode]);\n\n useImperativeHandle(ref, () => ({\n animateOut: (fn: any) => {\n Animated.timing(translateY, {\n toValue: screenHeight || Dimensions.get(\"screen\").height, // 移动到屏幕底部\n useNativeDriver: true,\n duration: closeAnimation?.duration ?? 150,\n easing: closeAnimation?.easing ?? Easing.ease,\n }).start((data) => {\n if (data.finished) {\n onAnimatedOut?.();\n setVisible(false);\n fn?.();\n translateY.setValue(screenHeight || Dimensions.get(\"screen\").height);\n }\n });\n },\n }));\n\n // 兼容setVisible方式的关闭动画\n useEffect(() => {\n if (!visible) {\n Animated.timing(translateY, {\n toValue: screenHeight || Dimensions.get(\"screen\").height, // 移动到屏幕底部\n useNativeDriver: true,\n duration: closeAnimation?.duration ?? 150,\n easing: closeAnimation?.easing ?? Easing.ease,\n }).start((data) => {\n if (data.finished) {\n onAnimatedOut?.();\n setVisible(false);\n translateY.setValue(screenHeight || Dimensions.get(\"screen\").height);\n }\n });\n } else {\n setVisible(true);\n animateIn();\n }\n }, [visible]);\n\n return (\n <>\n {showMask ? (\n <TouchableWithoutFeedback onPress={handleMask}>\n <Animated.View\n testID=\"mask\"\n style={[\n styles.mask,\n { backgroundColor: maskMode === SheetsMaskMode.light ? alwaysColor.MaskBg : \"rgba(0,0,0,0.8)\" },\n props.maskStyle,\n { opacity: opacityValue },\n ]}\n ></Animated.View>\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n <Animated.View\n testID=\"Sheets\"\n style={[\n styles.picker,\n { backgroundColor: themeColor.Bg2 },\n {\n height: sheetsHeight,\n transform: [{ translateY }],\n },\n { zIndex: props.zIndex },\n props.sheetsStyle,\n ]}\n >\n {props.header ? <View onLayout={handleLabelLayout}>{props.header}</View> : <></>}\n {/** normal */}\n {showLabel && !props.header ? (\n <View\n style={[\n props.headlerLayout === \"center\" ? styles.labelContainer : styles.leftLabelContainer,\n { backgroundColor: themeColor.Bg2 },\n props.headerStyle,\n ]}\n onLayout={handleLabelLayout}\n >\n {!cancel ? (\n props.headlerLayout === \"center\" ? (\n <Block />\n ) : (\n <></>\n )\n ) : (\n <TouchableOpacity onPress={handleCancel} activeOpacity={1}>\n {cancelType === SheetsActionType.text ? (\n <Text style={[styles.cancel, { color: themeColor.Title }]} testID=\"cancel\">\n {cancelText || cancelKey}\n </Text>\n ) : (\n iconWrapper(\"cancel\")\n )}\n </TouchableOpacity>\n )}\n {label ? (\n <Text style={[styles.label, { color: themeColor.Title }]}>\n {label}\n {showMask}\n </Text>\n ) : (\n <></>\n )}\n {!close ? (\n props.headlerLayout === \"center\" ? (\n <Block />\n ) : (\n <></>\n )\n ) : (\n <TouchableOpacity onPress={handleConfirm} activeOpacity={1}>\n {closeType === SheetsActionType.text ? (\n <View>\n <Text\n style={[\n styles.confirm,\n { color: themeColor.Primary },\n { elevation: 0, shadowColor: \"transparent\" },\n ]}\n testID=\"close\"\n >\n {closeText || sureKey}\n </Text>\n </View>\n ) : (\n iconWrapper(\"confirm\")\n )}\n </TouchableOpacity>\n )}\n </View>\n ) : (\n <></>\n )}\n\n {/** 拖拽按钮 */}\n {sheetsType === SheetsType.dragable && !props.header ? (\n <Animated.View style={[styles.dragableContainer]} {...panResponder.panHandlers} testID={\"draggable\"}>\n <View style={[styles.dragable, { backgroundColor: themeColor.Fill3 }]} />\n </Animated.View>\n ) : (\n <></>\n )}\n\n <View onLayout={handleLayout}>{children}</View>\n\n {/** action */}\n {showAction ? (\n <View style={[styles.actionContainer]} onLayout={handleActionLayout}>\n {cancel ? (\n <View style={styles.action}>\n <Button block onClick={handleCancel}>\n {cancelText || cancelKey}\n </Button>\n </View>\n ) : (\n <></>\n )}\n {close ? (\n <View style={styles.action}>\n <Button block onClick={handleConfirm} type=\"primary\">\n {closeText || sureKey}\n </Button>\n </View>\n ) : (\n <></>\n )}\n </View>\n ) : (\n <></>\n )}\n </Animated.View>\n </>\n );\n});\n// @ts-ignore\nAnimatedSheets.defaultProps = SheetsDefaultProps;\n\nexport default AnimatedSheets;\n"],"names":["AnimatedSheets","forwardRef","props","ref","useMounted","cancelKey","useLanguage","sureKey","visible","onCancel","onConfirm","onAnimatedOut","onImmediateCancel","onImmediateConfirm","isMaskClose","children","label","mask","maskMode","cancelType","closeType","cancelText","closeText","sheetsType","cancel","close","iconType","size","openAnimation","closeAnimation","themeColor","useThemeColor","colorMode","useColorMode","_useState","useState","Dimensions","get","height","_useState2","_slicedToArray","screenHeight","setScreenHeight","_useState3","_useState4","sheetsHeight","setSheetsHeight","_useState5","_useState6","isDragging","setIsDragging","_useState7","_useState8","_visible","setVisible","_useState9","_useState0","showMask","setShowMask","_useState1","Animated","Value","_useState10","translateY","childHeightRef","useRef","_useState11","_useState12","actionHeight","setActionHeight","_useState13","_useState14","labelHeight","setLabelHeight","_useState15","_useState16","childHeight","setChildHeight","opacityValue","current","showLabel","useMemo","SheetsType","normal","showAction","action","handleMask","handleConfirm","handleCancel","handleLayout","evt","nativeEvent","layout","handleActionLayout","handleLabelLayout","animateIn","_openAnimation$durati","_openAnimation$easing","timing","toValue","useNativeDriver","duration","easing","Easing","ease","start","useEffect","_props$sheetsStyle","factHeight","fullScreenHeight","halfScreenHeight","Math","floor","threeQuaterScreenHeight","isIos","Platform","OS","SAFE_BOTTOM","getSafeAreaInsets","bottom","calculateHeight","animatedSheetsSize","autoSize","SheetsSize","half","threeQuater","dragable","auto","min","sheetsStyle","backgroundColor","_openAnimation$durati2","_closeAnimation$durat","_openAnimation$easing2","_closeAnimation$easin","linear","panResponder","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","useCallback","_","gestureState","maxHeight","newHeight","max","dy","onPanResponderRelease","iconWrapper","type","SheetsIconType","bg","React","createElement","TouchableWithoutFeedback","onPress","View","style","styles","iconBg","Disabled","Icon","icon","CancelM","onClick","fill","ArrowLeft","IconType","image","dimensionListener","addEventListener","_ref","screen","remove","Block","block","useImperativeHandle","animateOut","fn","_closeAnimation$durat2","_closeAnimation$easin2","data","finished","setValue","_closeAnimation$durat3","_closeAnimation$easin3","Fragment","testID","SheetsMaskMode","light","alwaysColor","MaskBg","maskStyle","opacity","picker","Bg2","transform","zIndex","header","onLayout","headlerLayout","labelContainer","leftLabelContainer","headerStyle","TouchableOpacity","activeOpacity","SheetsActionType","text","Text","color","Title","confirm","Primary","elevation","shadowColor","_objectSpread","dragableContainer","panHandlers","Fill3","actionContainer","Button","defaultProps","SheetsDefaultProps"],"mappings":"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"}
|
|
@@ -30,6 +30,8 @@ export declare const enum AnimatedSheetsSize {
|
|
|
30
30
|
export interface SheetAnimationConfig {
|
|
31
31
|
/** Duration in milliseconds. Default: 150 */
|
|
32
32
|
duration?: number;
|
|
33
|
+
/** Easing function. Default: Easing.ease for sheet, Easing.linear for mask */
|
|
34
|
+
easing?: (value: number) => number;
|
|
33
35
|
}
|
|
34
36
|
export interface RedsSheets {
|
|
35
37
|
label?: string;
|
|
@@ -63,9 +65,11 @@ export interface RedsSheets {
|
|
|
63
65
|
headlerLayout?: "center" | "left";
|
|
64
66
|
openAnimation?: {
|
|
65
67
|
duration?: number;
|
|
68
|
+
easing?: (value: number) => number;
|
|
66
69
|
};
|
|
67
70
|
closeAnimation?: {
|
|
68
71
|
duration?: number;
|
|
72
|
+
easing?: (value: number) => number;
|
|
69
73
|
};
|
|
70
74
|
}
|
|
71
75
|
export interface RedsSheetsEvent {
|
|
@@ -30,6 +30,8 @@ export declare const enum AnimatedSheetsSize {
|
|
|
30
30
|
export interface SheetAnimationConfig {
|
|
31
31
|
/** Duration in milliseconds. Default: 150 */
|
|
32
32
|
duration?: number;
|
|
33
|
+
/** Easing function. Default: Easing.ease for sheet, Easing.linear for mask */
|
|
34
|
+
easing?: (value: number) => number;
|
|
33
35
|
}
|
|
34
36
|
export interface RedsSheets {
|
|
35
37
|
label?: string;
|
|
@@ -63,9 +65,11 @@ export interface RedsSheets {
|
|
|
63
65
|
headlerLayout?: "center" | "left";
|
|
64
66
|
openAnimation?: {
|
|
65
67
|
duration?: number;
|
|
68
|
+
easing?: (value: number) => number;
|
|
66
69
|
};
|
|
67
70
|
closeAnimation?: {
|
|
68
71
|
duration?: number;
|
|
72
|
+
easing?: (value: number) => number;
|
|
69
73
|
};
|
|
70
74
|
}
|
|
71
75
|
export interface RedsSheetsEvent {
|
package/package.json
CHANGED
|
@@ -184,7 +184,7 @@ const AnimatedSheets = forwardRef((props: RedsSheets, ref) => {
|
|
|
184
184
|
toValue: 0, // 移动到目标位置(顶部)
|
|
185
185
|
useNativeDriver: true,
|
|
186
186
|
duration: openAnimation?.duration ?? 150,
|
|
187
|
-
easing: Easing.ease,
|
|
187
|
+
easing: openAnimation?.easing ?? Easing.ease,
|
|
188
188
|
}).start();
|
|
189
189
|
};
|
|
190
190
|
|
|
@@ -247,7 +247,7 @@ const AnimatedSheets = forwardRef((props: RedsSheets, ref) => {
|
|
|
247
247
|
toValue: _visible && mask ? 1 : 0,
|
|
248
248
|
duration: _visible ? openAnimation?.duration ?? 150 : closeAnimation?.duration ?? 150,
|
|
249
249
|
useNativeDriver: true, // 使用原生驱动
|
|
250
|
-
easing: Easing.linear
|
|
250
|
+
easing: _visible ? openAnimation?.easing ?? Easing.linear : closeAnimation?.easing ?? Easing.linear,
|
|
251
251
|
}).start(() => {
|
|
252
252
|
setShowMask(_visible);
|
|
253
253
|
});
|
|
@@ -354,7 +354,7 @@ const AnimatedSheets = forwardRef((props: RedsSheets, ref) => {
|
|
|
354
354
|
toValue: screenHeight || Dimensions.get("screen").height, // 移动到屏幕底部
|
|
355
355
|
useNativeDriver: true,
|
|
356
356
|
duration: closeAnimation?.duration ?? 150,
|
|
357
|
-
easing: Easing.ease,
|
|
357
|
+
easing: closeAnimation?.easing ?? Easing.ease,
|
|
358
358
|
}).start((data) => {
|
|
359
359
|
if (data.finished) {
|
|
360
360
|
onAnimatedOut?.();
|
|
@@ -373,7 +373,7 @@ const AnimatedSheets = forwardRef((props: RedsSheets, ref) => {
|
|
|
373
373
|
toValue: screenHeight || Dimensions.get("screen").height, // 移动到屏幕底部
|
|
374
374
|
useNativeDriver: true,
|
|
375
375
|
duration: closeAnimation?.duration ?? 150,
|
|
376
|
-
easing: Easing.ease,
|
|
376
|
+
easing: closeAnimation?.easing ?? Easing.ease,
|
|
377
377
|
}).start((data) => {
|
|
378
378
|
if (data.finished) {
|
|
379
379
|
onAnimatedOut?.();
|
|
@@ -40,11 +40,13 @@ import BaseDemo from "!!raw-loader!../demo/index.tsx";
|
|
|
40
40
|
| headlerLayout | headlerLayout | "center" | "left" | center |
|
|
41
41
|
| openAnimation | openAnimation | { |
|
|
42
42
|
|
|
43
|
-
duration?: number
|
|
43
|
+
duration?: number;
|
|
44
|
+
easing?: (value: number) => number;
|
|
44
45
|
|
|
45
46
|
} | `{}` |
|
|
46
|
-
| closeAnimation |
|
|
47
|
-
duration?: number
|
|
47
|
+
| closeAnimation | closeAnimation | {
|
|
48
|
+
duration?: number;
|
|
49
|
+
easing?: (value: number) => number;
|
|
48
50
|
} | `{}` |
|
|
49
51
|
|
|
50
52
|
### Events
|
|
@@ -37,6 +37,8 @@ export const enum AnimatedSheetsSize {
|
|
|
37
37
|
export interface SheetAnimationConfig {
|
|
38
38
|
/** Duration in milliseconds. Default: 150 */
|
|
39
39
|
duration?: number;
|
|
40
|
+
/** Easing function. Default: Easing.ease for sheet, Easing.linear for mask */
|
|
41
|
+
easing?: (value: number) => number;
|
|
40
42
|
}
|
|
41
43
|
export interface RedsSheets {
|
|
42
44
|
label?: string;
|
|
@@ -70,9 +72,11 @@ export interface RedsSheets {
|
|
|
70
72
|
headlerLayout?: "center" | "left";
|
|
71
73
|
openAnimation?: {
|
|
72
74
|
duration?: number;
|
|
75
|
+
easing?: (value: number) => number;
|
|
73
76
|
};
|
|
74
77
|
closeAnimation?: {
|
|
75
78
|
duration?: number;
|
|
79
|
+
easing?: (value: number) => number;
|
|
76
80
|
};
|
|
77
81
|
}
|
|
78
82
|
|