@xhsreds/reds-rn-next 0.9.1-test.1 → 0.10.1-beta202511041913

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.
Files changed (131) hide show
  1. package/coverage/.tmp/coverage-0.json +1 -1
  2. package/coverage/.tmp/coverage-1.json +1 -1
  3. package/coverage/.tmp/coverage-10.json +1 -1
  4. package/coverage/.tmp/coverage-11.json +1 -1
  5. package/coverage/.tmp/coverage-12.json +1 -1
  6. package/coverage/.tmp/coverage-13.json +1 -1
  7. package/coverage/.tmp/coverage-14.json +1 -1
  8. package/coverage/.tmp/coverage-15.json +1 -1
  9. package/coverage/.tmp/coverage-16.json +1 -1
  10. package/coverage/.tmp/coverage-17.json +1 -1
  11. package/coverage/.tmp/coverage-18.json +1 -1
  12. package/coverage/.tmp/coverage-19.json +1 -1
  13. package/coverage/.tmp/coverage-2.json +1 -1
  14. package/coverage/.tmp/coverage-20.json +1 -1
  15. package/coverage/.tmp/coverage-21.json +1 -1
  16. package/coverage/.tmp/coverage-22.json +1 -1
  17. package/coverage/.tmp/coverage-23.json +1 -1
  18. package/coverage/.tmp/coverage-24.json +1 -1
  19. package/coverage/.tmp/coverage-25.json +1 -1
  20. package/coverage/.tmp/coverage-26.json +1 -1
  21. package/coverage/.tmp/coverage-27.json +1 -1
  22. package/coverage/.tmp/coverage-33.json +1 -1
  23. package/coverage/.tmp/coverage-35.json +1 -1
  24. package/coverage/.tmp/coverage-37.json +1 -1
  25. package/coverage/.tmp/coverage-38.json +1 -1
  26. package/coverage/.tmp/coverage-39.json +1 -1
  27. package/coverage/.tmp/coverage-4.json +1 -1
  28. package/coverage/.tmp/coverage-41.json +1 -1
  29. package/coverage/.tmp/coverage-5.json +1 -1
  30. package/coverage/.tmp/coverage-6.json +1 -1
  31. package/coverage/.tmp/coverage-7.json +1 -1
  32. package/coverage/.tmp/coverage-8.json +1 -1
  33. package/coverage/.tmp/coverage-9.json +1 -1
  34. package/lib/cjs/_chunks/CwkpVXDI.js.map +1 -1
  35. package/lib/cjs/_chunks/{CIr5S84J.js → DUU5wf2f.js} +4 -2
  36. package/lib/cjs/_chunks/DUU5wf2f.js.map +1 -0
  37. package/lib/cjs/components/Carousel/Carousel.js +9 -2
  38. package/lib/cjs/components/Carousel/Carousel.js.map +1 -1
  39. package/lib/cjs/components/Image/Image.js +29 -92
  40. package/lib/cjs/components/Image/Image.js.map +1 -1
  41. package/lib/cjs/components/Image/VisibilitySensor.js +1 -1
  42. package/lib/cjs/components/Image/VisibilitySensor.js.map +1 -1
  43. package/lib/cjs/components/Image/index.js +4 -3
  44. package/lib/cjs/components/Image/index.js.map +1 -1
  45. package/lib/cjs/components/Image/queryCacheBatcher.js +96 -0
  46. package/lib/cjs/components/Image/queryCacheBatcher.js.map +1 -0
  47. package/lib/cjs/components/Popover/Popover.js +4 -3
  48. package/lib/cjs/components/Popover/Popover.js.map +1 -1
  49. package/lib/cjs/components/PullRefresh/PullRefresh.js +104 -40
  50. package/lib/cjs/components/PullRefresh/PullRefresh.js.map +1 -1
  51. package/lib/cjs/components/PullRefresh/component.js +1 -1
  52. package/lib/cjs/components/PullRefresh/index.js +1 -1
  53. package/lib/cjs/components/PullRefresh/interface/index.js +1 -1
  54. package/lib/cjs/components/Radio/Radio.js +6 -5
  55. package/lib/cjs/components/Radio/Radio.js.map +1 -1
  56. package/lib/cjs/components/Radio/index.js +3 -2
  57. package/lib/cjs/components/Radio/index.js.map +1 -1
  58. package/lib/cjs/components/Radio/styles.js +4 -4
  59. package/lib/cjs/components/Radio/styles.js.map +1 -1
  60. package/lib/cjs/components/Sheets/styles.js +2 -2
  61. package/lib/cjs/components/Sheets/styles.js.map +1 -1
  62. package/lib/cjs/components/StatusBar/hook/getStatusHeight.js +14 -1
  63. package/lib/cjs/components/StatusBar/hook/getStatusHeight.js.map +1 -1
  64. package/lib/cjs/index.js +3 -2
  65. package/lib/cjs/index.js.map +1 -1
  66. package/lib/cjs/pvCount/pvData.js +1 -1
  67. package/lib/esm/_chunks/Da9cW8JG.js.map +1 -1
  68. package/lib/esm/_chunks/{CZtagXcj.js → gC9g4Fr_.js} +4 -2
  69. package/lib/esm/_chunks/gC9g4Fr_.js.map +1 -0
  70. package/lib/esm/components/Carousel/Carousel.js +9 -2
  71. package/lib/esm/components/Carousel/Carousel.js.map +1 -1
  72. package/lib/esm/components/Image/Image.js +31 -94
  73. package/lib/esm/components/Image/Image.js.map +1 -1
  74. package/lib/esm/components/Image/VisibilitySensor.js +1 -1
  75. package/lib/esm/components/Image/VisibilitySensor.js.map +1 -1
  76. package/lib/esm/components/Image/index.js +4 -3
  77. package/lib/esm/components/Image/index.js.map +1 -1
  78. package/lib/esm/components/Image/queryCacheBatcher.js +92 -0
  79. package/lib/esm/components/Image/queryCacheBatcher.js.map +1 -0
  80. package/lib/esm/components/Popover/Popover.js +4 -3
  81. package/lib/esm/components/Popover/Popover.js.map +1 -1
  82. package/lib/esm/components/PullRefresh/PullRefresh.js +105 -41
  83. package/lib/esm/components/PullRefresh/PullRefresh.js.map +1 -1
  84. package/lib/esm/components/PullRefresh/component.js +1 -1
  85. package/lib/esm/components/PullRefresh/index.js +1 -1
  86. package/lib/esm/components/PullRefresh/interface/index.js +1 -1
  87. package/lib/esm/components/Radio/Radio.js +6 -5
  88. package/lib/esm/components/Radio/Radio.js.map +1 -1
  89. package/lib/esm/components/Radio/index.js +3 -2
  90. package/lib/esm/components/Radio/index.js.map +1 -1
  91. package/lib/esm/components/Radio/styles.js +4 -4
  92. package/lib/esm/components/Radio/styles.js.map +1 -1
  93. package/lib/esm/components/Sheets/styles.js +2 -2
  94. package/lib/esm/components/Sheets/styles.js.map +1 -1
  95. package/lib/esm/components/StatusBar/hook/getStatusHeight.js +14 -2
  96. package/lib/esm/components/StatusBar/hook/getStatusHeight.js.map +1 -1
  97. package/lib/esm/index.js +3 -2
  98. package/lib/esm/index.js.map +1 -1
  99. package/lib/esm/pvCount/pvData.js +1 -1
  100. package/lib/src/components/Image/queryCacheBatcher.d.ts +5 -0
  101. package/lib/src/components/Popover/Popover.d.ts +1 -1
  102. package/lib/src/components/Popover/interface/index.d.ts +1 -0
  103. package/lib/src/components/PullRefresh/PullRefresh.d.ts +2 -0
  104. package/lib/src/components/PullRefresh/interface/index.d.ts +5 -0
  105. package/lib/src/components/StatusBar/hook/getStatusHeight.d.ts +1 -0
  106. package/lib/types/components/Image/queryCacheBatcher.d.ts +5 -0
  107. package/lib/types/components/Popover/Popover.d.ts +1 -1
  108. package/lib/types/components/Popover/interface/index.d.ts +1 -0
  109. package/lib/types/components/PullRefresh/PullRefresh.d.ts +2 -0
  110. package/lib/types/components/PullRefresh/interface/index.d.ts +5 -0
  111. package/lib/types/components/StatusBar/hook/getStatusHeight.d.ts +1 -0
  112. package/package.json +2 -2
  113. package/src/components/Carousel/Carousel.tsx +15 -3
  114. package/src/components/Carousel/demo/index.tsx +14 -2
  115. package/src/components/Image/Image.tsx +53 -115
  116. package/src/components/Image/VisibilitySensor.tsx +1 -2
  117. package/src/components/Image/queryCacheBatcher.ts +84 -0
  118. package/src/components/Popover/Popover.tsx +4 -3
  119. package/src/components/Popover/doc/index.mdx +22 -21
  120. package/src/components/Popover/interface/index.ts +1 -0
  121. package/src/components/PullRefresh/PullRefresh.tsx +146 -55
  122. package/src/components/PullRefresh/doc/index.mdx +19 -16
  123. package/src/components/PullRefresh/interface/index.ts +6 -0
  124. package/src/components/Radio/Radio.tsx +3 -3
  125. package/src/components/Radio/styles.ts +3 -3
  126. package/src/components/Sheets/styles.ts +2 -2
  127. package/src/components/StatusBar/hook/getStatusHeight.ts +20 -1
  128. package/src/index.ts +0 -1
  129. package/CHANGELOG.md +0 -13
  130. package/lib/cjs/_chunks/CIr5S84J.js.map +0 -1
  131. package/lib/esm/_chunks/CZtagXcj.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.js","sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React, { useState, useMemo, isValidElement, useEffect, useRef } from \"react\";\nimport { Text, View, TouchableWithoutFeedback, GestureResponderEvent, Animated, Image, Dimensions } from \"react-native\";\nimport { RedsPopover } from \"./interface/index\";\nimport { ModalWrapper } from \"./component\";\nimport { darkColor, lightColor, typography } from \"@xhsreds/reds-token-next\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nimport { Portal } from \"../Portal\";\nconst defaultValue = -9999;\n\nexport default ({\n mode = \"light\",\n opacity = 0,\n content,\n children,\n isControl = false,\n placement = \"top\",\n closeOnClickAgain = true,\n trigger = \"click\",\n zIndex = 1000,\n visible,\n onVisibleChange,\n onClickMask: _onClickMask,\n popContainerStyle = {},\n arrowStyles: propsArrowStyles,\n offset,\n duration,\n hostName,\n maxWidth,\n arrowOffset,\n}: RedsPopover) => {\n useMounted(\"Popover\");\n const needModal = useMemo(() => opacity !== 0, [opacity]);\n\n const [_visible, setVisible] = useState(false);\n\n const progress = useRef(new Animated.Value(0)).current;\n\n const childRef = useRef<any>(null);\n\n const [layout, setLayout] = useState({\n x: defaultValue,\n y: defaultValue,\n width: 0,\n height: 0,\n });\n\n const [floatingLayout, setFloatingLayout] = useState({\n x: defaultValue,\n y: defaultValue,\n width: 0,\n height: 0,\n });\n\n const floatStyles = useMemo(() => {\n const start = [\"top-start\", \"bottom-start\"].includes(placement);\n const mid = [\"top\", \"bottom\"].includes(placement);\n const end = [\"top-end\", \"bottom-end\"].includes(placement);\n const diffX = floatingLayout.width - layout.width;\n // @ts-expect-error\n const isHarmony = Platform.OS === \"harmony\";\n return layout.height\n ? {\n position: \"absolute\",\n top:\n (placement.includes(\"top\") ? layout.y - floatingLayout.height - 12 : layout.y + layout.height + 12) -\n (offset?.y || 0),\n left:\n (start ? layout.x : mid ? layout.x - diffX / 2 : end ? layout.x - diffX : 0) +\n (offset?.x || 0) -\n (isHarmony ? Dimensions.get(\"screen\").width : 0),\n }\n : {};\n }, [placement, layout, floatingLayout]);\n\n const arrowStyles = useMemo(() => {\n const start = [\"top-start\", \"bottom-start\"].includes(placement);\n const mid = [\"top\", \"bottom\"].includes(placement);\n const end = [\"top-end\", \"bottom-end\"].includes(placement);\n const diffX = floatingLayout.width - layout.width;\n // @ts-expect-error\n const isHarmony = Platform.OS === \"harmony\";\n return layout.height\n ? {\n transform: [{ rotate: placement.includes(\"top\") ? `0deg` : `180deg` }],\n position: \"absolute\",\n top:\n (placement.includes(\"top\") ? layout.y - 12 : layout.y + layout.height + 6) +\n (offset?.y || 0) +\n (arrowOffset?.y || 0),\n left:\n (start\n ? layout.x + 8\n : mid\n ? layout.x - diffX / 2 + floatingLayout.width / 2 - 6\n : end\n ? layout.x - diffX + floatingLayout.width - 24\n : 0) +\n (offset?.x || 0) +\n (arrowOffset?.x || 0) -\n (isHarmony ? Dimensions.get(\"screen\").width : 0),\n }\n : {};\n }, [placement, layout, floatingLayout, offset]);\n\n useEffect(() => {\n let timer: any;\n if (duration) {\n timer = setTimeout(() => onMaskChange({} as GestureResponderEvent, false), duration);\n }\n return () => {\n timer && clearTimeout(timer);\n };\n }, [duration, _visible]);\n\n /**\n * 提供popover变化回调\n */\n useEffect(() => {\n onVisibleChange?.(!!_visible);\n if (_visible) {\n if (layout.x !== defaultValue) {\n Animated.timing(progress, {\n toValue: 1,\n duration: duration ?? 400,\n useNativeDriver: false,\n }).start();\n }\n } else {\n Animated.timing(progress, {\n toValue: 0,\n duration: duration ?? 400,\n useNativeDriver: false,\n }).start();\n }\n }, [_visible, layout]);\n\n const onMaskChange = (event: GestureResponderEvent, value: boolean) => {\n if (isControl) return;\n if (value === undefined) return setVisible(!_visible);\n return setVisible(value);\n };\n\n const onClickMask = (e: GestureResponderEvent) => {\n onMaskChange(e, false);\n _onClickMask?.(e);\n };\n\n const popoverStyle = useMemo(() => {\n let color: typeof lightColor | typeof darkColor = lightColor;\n if (mode === \"light\") color = lightColor;\n if (mode === \"dark\") color = darkColor;\n return {\n backgroundColor: color.Fill5,\n color: color.White,\n };\n }, [mode]);\n\n useEffect(() => {\n isControl && setVisible(!!visible);\n }, [visible]);\n\n const angle = useMemo(() => {\n if (mode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/907ae578dedd5f26b9c150ab910c7d16234cf219.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/354f38172beb8e9f51725ec0bc9f5d546597e5ba.png\";\n }\n }, [mode]);\n\n useEffect(() => {\n childRef?.current?.measureInWindow?.((x: number, y: number, width: number, height: number) => {\n setLayout({\n x,\n y,\n width,\n height,\n });\n });\n }, [offset]);\n\n useEffect(() => {\n if (_visible) {\n childRef?.current?.measureInWindow?.((x: number, y: number, width: number, height: number) => {\n setLayout({\n x,\n y,\n width,\n height,\n });\n });\n }\n }, [_visible]);\n\n return (\n <>\n {React.Children.map(children, (child, index) => {\n if (index === 0 && isValidElement(child)) {\n return (\n <TouchableWithoutFeedback\n onPress={(e) => {\n if (trigger === \"click\") {\n if (closeOnClickAgain) {\n onMaskChange(e, !_visible);\n } else {\n onMaskChange(e, true);\n }\n }\n }}\n onPressIn={(e) => {\n trigger === \"touch\" && onMaskChange(e, true);\n }}\n onPressOut={(e) => {\n trigger === \"touch\" && onMaskChange(e, false);\n }}\n >\n <View\n collapsable={false}\n ref={(el) => (childRef.current = el)}\n style={child.props.style}\n onStartShouldSetResponderCapture={() => !isControl}\n >\n {child}\n </View>\n </TouchableWithoutFeedback>\n );\n }\n return child;\n })}\n {_visible && layout.x !== defaultValue ? (\n <Portal hostName={hostName}>\n <ModalWrapper\n needModal={needModal}\n visible={_visible}\n onClickMask={onClickMask}\n opacity={opacity}\n progress={progress}\n zIndex={zIndex}\n >\n <>\n <Animated.View\n collapsable={false}\n onLayout={(e) => {\n setFloatingLayout(e.nativeEvent.layout);\n }}\n // @ts-expect-error\n style={{\n backgroundColor: popoverStyle.backgroundColor,\n paddingHorizontal: 12,\n paddingVertical: 7,\n maxWidth: maxWidth || 280,\n minHeight: 30,\n borderRadius: 8,\n zIndex,\n shadowColor: \"#000000\",\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.1,\n shadowRadius: 4,\n elevation: 2,\n ...floatStyles!,\n ...popContainerStyle!,\n opacity: progress,\n }}\n >\n {typeof content === \"function\" ? (\n (content as any)()\n ) : (\n <Text\n style={{\n fontWeight: typography.B2LooseFontWeight,\n fontSize: typography.B2LooseFontSize,\n lineHeight: typography.B2LooseLineHeight,\n color: popoverStyle.color,\n }}\n >\n {content}\n </Text>\n )}\n </Animated.View>\n <Image\n source={{ uri: angle }}\n // @ts-expect-error\n style={{\n width: 14,\n height: 6,\n zIndex: zIndex + 9,\n ...arrowStyles,\n ...propsArrowStyles,\n }}\n />\n </>\n </ModalWrapper>\n </Portal>\n ) : (\n <></>\n )}\n </>\n );\n};\n"],"names":["defaultValue","_ref","_ref$mode","mode","_ref$opacity","opacity","content","children","_ref$isControl","isControl","_ref$placement","placement","_ref$closeOnClickAgai","closeOnClickAgain","_ref$trigger","trigger","_ref$zIndex","zIndex","visible","onVisibleChange","_onClickMask","onClickMask","_ref$popContainerStyl","popContainerStyle","propsArrowStyles","arrowStyles","offset","duration","hostName","maxWidth","arrowOffset","useMounted","needModal","useMemo","_useState","useState","_useState2","_slicedToArray","_visible","setVisible","progress","useRef","Animated","Value","current","childRef","_useState3","x","y","width","height","_useState4","layout","setLayout","_useState5","_useState6","floatingLayout","setFloatingLayout","floatStyles","start","includes","mid","end","diffX","isHarmony","Platform","OS","position","top","left","Dimensions","get","transform","rotate","useEffect","timer","setTimeout","onMaskChange","clearTimeout","timing","toValue","useNativeDriver","event","value","e","popoverStyle","color","lightColor","darkColor","backgroundColor","Fill5","White","angle","_childRef$current","_childRef$current$mea","measureInWindow","call","_childRef$current2","_childRef$current2$me","React","Children","map","child","index","isValidElement","createElement","TouchableWithoutFeedback","onPress","onPressIn","onPressOut","View","collapsable","ref","el","style","props","onStartShouldSetResponderCapture","Portal","ModalWrapper","Fragment","onLayout","nativeEvent","_objectSpread","paddingHorizontal","paddingVertical","minHeight","borderRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","Text","fontWeight","typography","B2LooseFontWeight","fontSize","B2LooseFontSize","lineHeight","B2LooseLineHeight","Image","source","uri"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.js","sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React, { useState, useMemo, isValidElement, useEffect, useRef } from \"react\";\nimport { Text, View, TouchableWithoutFeedback, GestureResponderEvent, Animated, Image, Dimensions } from \"react-native\";\nimport { RedsPopover } from \"./interface/index\";\nimport { ModalWrapper } from \"./component\";\nimport { darkColor, lightColor, typography } from \"@xhsreds/reds-token-next\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nimport { Portal } from \"../Portal\";\nconst defaultValue = -9999;\n\nexport default ({\n mode = \"light\",\n opacity = 0,\n content,\n children,\n isControl = false,\n placement = \"top\",\n closeOnClickAgain = true,\n trigger = \"click\",\n zIndex = 1000,\n visible,\n onVisibleChange,\n onClickMask: _onClickMask,\n popContainerStyle = {},\n arrowStyles: propsArrowStyles,\n offset,\n duration,\n animation_duration,\n hostName,\n maxWidth,\n arrowOffset,\n}: RedsPopover) => {\n useMounted(\"Popover\");\n const needModal = useMemo(() => opacity !== 0, [opacity]);\n\n const [_visible, setVisible] = useState(false);\n\n const progress = useRef(new Animated.Value(0)).current;\n\n const childRef = useRef<any>(null);\n\n const [layout, setLayout] = useState({\n x: defaultValue,\n y: defaultValue,\n width: 0,\n height: 0,\n });\n\n const [floatingLayout, setFloatingLayout] = useState({\n x: defaultValue,\n y: defaultValue,\n width: 0,\n height: 0,\n });\n\n const floatStyles = useMemo(() => {\n const start = [\"top-start\", \"bottom-start\"].includes(placement);\n const mid = [\"top\", \"bottom\"].includes(placement);\n const end = [\"top-end\", \"bottom-end\"].includes(placement);\n const diffX = floatingLayout.width - layout.width;\n // @ts-expect-error\n const isHarmony = Platform.OS === \"harmony\";\n return layout.height\n ? {\n position: \"absolute\",\n top:\n (placement.includes(\"top\") ? layout.y - floatingLayout.height - 12 : layout.y + layout.height + 12) -\n (offset?.y || 0),\n left:\n (start ? layout.x : mid ? layout.x - diffX / 2 : end ? layout.x - diffX : 0) +\n (offset?.x || 0) -\n (isHarmony ? Dimensions.get(\"screen\").width : 0),\n }\n : {};\n }, [placement, layout, floatingLayout]);\n\n const arrowStyles = useMemo(() => {\n const start = [\"top-start\", \"bottom-start\"].includes(placement);\n const mid = [\"top\", \"bottom\"].includes(placement);\n const end = [\"top-end\", \"bottom-end\"].includes(placement);\n const diffX = floatingLayout.width - layout.width;\n // @ts-expect-error\n const isHarmony = Platform.OS === \"harmony\";\n return layout.height\n ? {\n transform: [{ rotate: placement.includes(\"top\") ? `0deg` : `180deg` }],\n position: \"absolute\",\n top:\n (placement.includes(\"top\") ? layout.y - 12 : layout.y + layout.height + 6) +\n (offset?.y || 0) +\n (arrowOffset?.y || 0),\n left:\n (start\n ? layout.x + 8\n : mid\n ? layout.x - diffX / 2 + floatingLayout.width / 2 - 6\n : end\n ? layout.x - diffX + floatingLayout.width - 24\n : 0) +\n (offset?.x || 0) +\n (arrowOffset?.x || 0) -\n (isHarmony ? Dimensions.get(\"screen\").width : 0),\n }\n : {};\n }, [placement, layout, floatingLayout, offset]);\n\n useEffect(() => {\n let timer: any;\n if (duration) {\n timer = setTimeout(() => onMaskChange({} as GestureResponderEvent, false), duration);\n }\n return () => {\n timer && clearTimeout(timer);\n };\n }, [duration, _visible]);\n\n /**\n * 提供popover变化回调\n */\n useEffect(() => {\n onVisibleChange?.(!!_visible);\n if (_visible) {\n if (layout.x !== defaultValue) {\n Animated.timing(progress, {\n toValue: 1,\n duration: animation_duration ?? 400,\n useNativeDriver: false,\n }).start();\n }\n } else {\n Animated.timing(progress, {\n toValue: 0,\n duration: animation_duration ?? 400,\n useNativeDriver: false,\n }).start();\n }\n }, [_visible, layout, animation_duration]);\n\n const onMaskChange = (event: GestureResponderEvent, value: boolean) => {\n if (isControl) return;\n if (value === undefined) return setVisible(!_visible);\n return setVisible(value);\n };\n\n const onClickMask = (e: GestureResponderEvent) => {\n onMaskChange(e, false);\n _onClickMask?.(e);\n };\n\n const popoverStyle = useMemo(() => {\n let color: typeof lightColor | typeof darkColor = lightColor;\n if (mode === \"light\") color = lightColor;\n if (mode === \"dark\") color = darkColor;\n return {\n backgroundColor: color.Fill5,\n color: color.White,\n };\n }, [mode]);\n\n useEffect(() => {\n isControl && setVisible(!!visible);\n }, [visible]);\n\n const angle = useMemo(() => {\n if (mode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/907ae578dedd5f26b9c150ab910c7d16234cf219.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/354f38172beb8e9f51725ec0bc9f5d546597e5ba.png\";\n }\n }, [mode]);\n\n useEffect(() => {\n childRef?.current?.measureInWindow?.((x: number, y: number, width: number, height: number) => {\n setLayout({\n x,\n y,\n width,\n height,\n });\n });\n }, [offset]);\n\n useEffect(() => {\n if (_visible) {\n childRef?.current?.measureInWindow?.((x: number, y: number, width: number, height: number) => {\n setLayout({\n x,\n y,\n width,\n height,\n });\n });\n }\n }, [_visible]);\n\n return (\n <>\n {React.Children.map(children, (child, index) => {\n if (index === 0 && isValidElement(child)) {\n return (\n <TouchableWithoutFeedback\n onPress={(e) => {\n if (trigger === \"click\") {\n if (closeOnClickAgain) {\n onMaskChange(e, !_visible);\n } else {\n onMaskChange(e, true);\n }\n }\n }}\n onPressIn={(e) => {\n trigger === \"touch\" && onMaskChange(e, true);\n }}\n onPressOut={(e) => {\n trigger === \"touch\" && onMaskChange(e, false);\n }}\n >\n <View\n collapsable={false}\n ref={(el) => (childRef.current = el)}\n style={child.props.style}\n onStartShouldSetResponderCapture={() => !isControl}\n >\n {child}\n </View>\n </TouchableWithoutFeedback>\n );\n }\n return child;\n })}\n {_visible && layout.x !== defaultValue ? (\n <Portal hostName={hostName}>\n <ModalWrapper\n needModal={needModal}\n visible={_visible}\n onClickMask={onClickMask}\n opacity={opacity}\n progress={progress}\n zIndex={zIndex}\n >\n <>\n <Animated.View\n collapsable={false}\n onLayout={(e) => {\n setFloatingLayout(e.nativeEvent.layout);\n }}\n // @ts-expect-error\n style={{\n backgroundColor: popoverStyle.backgroundColor,\n paddingHorizontal: 12,\n paddingVertical: 7,\n maxWidth: maxWidth || 280,\n minHeight: 30,\n borderRadius: 8,\n zIndex,\n shadowColor: \"#000000\",\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.1,\n shadowRadius: 4,\n elevation: 2,\n ...floatStyles!,\n ...popContainerStyle!,\n opacity: progress,\n }}\n >\n {typeof content === \"function\" ? (\n (content as any)()\n ) : (\n <Text\n style={{\n fontWeight: typography.B2LooseFontWeight,\n fontSize: typography.B2LooseFontSize,\n lineHeight: typography.B2LooseLineHeight,\n color: popoverStyle.color,\n }}\n >\n {content}\n </Text>\n )}\n </Animated.View>\n <Image\n source={{ uri: angle }}\n // @ts-expect-error\n style={{\n width: 14,\n height: 6,\n zIndex: zIndex + 9,\n ...arrowStyles,\n ...propsArrowStyles,\n }}\n />\n </>\n </ModalWrapper>\n </Portal>\n ) : (\n <></>\n )}\n </>\n );\n};\n"],"names":["defaultValue","_ref","_ref$mode","mode","_ref$opacity","opacity","content","children","_ref$isControl","isControl","_ref$placement","placement","_ref$closeOnClickAgai","closeOnClickAgain","_ref$trigger","trigger","_ref$zIndex","zIndex","visible","onVisibleChange","_onClickMask","onClickMask","_ref$popContainerStyl","popContainerStyle","propsArrowStyles","arrowStyles","offset","duration","animation_duration","hostName","maxWidth","arrowOffset","useMounted","needModal","useMemo","_useState","useState","_useState2","_slicedToArray","_visible","setVisible","progress","useRef","Animated","Value","current","childRef","_useState3","x","y","width","height","_useState4","layout","setLayout","_useState5","_useState6","floatingLayout","setFloatingLayout","floatStyles","start","includes","mid","end","diffX","isHarmony","Platform","OS","position","top","left","Dimensions","get","transform","rotate","useEffect","timer","setTimeout","onMaskChange","clearTimeout","timing","toValue","useNativeDriver","event","value","e","popoverStyle","color","lightColor","darkColor","backgroundColor","Fill5","White","angle","_childRef$current","_childRef$current$mea","measureInWindow","call","_childRef$current2","_childRef$current2$me","React","Children","map","child","index","isValidElement","createElement","TouchableWithoutFeedback","onPress","onPressIn","onPressOut","View","collapsable","ref","el","style","props","onStartShouldSetResponderCapture","Portal","ModalWrapper","Fragment","onLayout","nativeEvent","_objectSpread","paddingHorizontal","paddingVertical","minHeight","borderRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","Text","fontWeight","typography","B2LooseFontWeight","fontSize","B2LooseFontSize","lineHeight","B2LooseLineHeight","Image","source","uri"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { _ as _slicedToArray, a as _objectSpread2 } from '../../_chunks/CAkwE9ZD.js';
2
2
  import React, { useState, useRef, useEffect, useMemo } from 'react';
3
- import { StyleSheet, Animated, PanResponder, View, Easing } from 'react-native';
4
- import { P as PullState, a as PullRefreshDefaultProps } from '../../_chunks/CZtagXcj.js';
3
+ import { StyleSheet, Animated, Platform, PanResponder, RefreshControl, View, Easing } from 'react-native';
4
+ import { P as PullState, a as PullRefreshDefaultProps } from '../../_chunks/gC9g4Fr_.js';
5
5
  import DefaultRefreshControl from './component.js';
6
6
  import useMounted from '../../pvCount/useUnmountedProcess.js';
7
7
  import '../ProgressIndicator/ProgressIndicator.js';
@@ -36,6 +36,7 @@ import '../../i18n/index.js';
36
36
  import './Refresh.js';
37
37
  import 'react-native-svg';
38
38
 
39
+ var CustomRefreshControl = DefaultRefreshControl;
39
40
  function PullRefresh(props) {
40
41
  useMounted("PullRefresh");
41
42
  var _useState = useState(0),
@@ -61,37 +62,42 @@ function PullRefresh(props) {
61
62
  _useState10 = _slicedToArray(_useState1, 2),
62
63
  isRefreshing = _useState10[0],
63
64
  setIsRefreshing = _useState10[1];
64
- var _useState11 = useState(),
65
+ var _useState11 = useState(false),
65
66
  _useState12 = _slicedToArray(_useState11, 2),
66
- animation = _useState12[0],
67
- setAnimation = _useState12[1];
68
- var _useState13 = useState(PullState.INIT),
67
+ internalRefreshing = _useState12[0],
68
+ setInternalRefreshing = _useState12[1];
69
+ var androidAutoEndRef = useRef();
70
+ var _useState13 = useState(),
69
71
  _useState14 = _slicedToArray(_useState13, 2),
70
- pullState = _useState14[0],
71
- setPullState = _useState14[1];
72
- var _useState15 = useState(0),
72
+ animation = _useState14[0],
73
+ setAnimation = _useState14[1];
74
+ var _useState15 = useState(PullState.INIT),
73
75
  _useState16 = _slicedToArray(_useState15, 2),
74
- moveHeight = _useState16[0],
75
- setMoveHeight = _useState16[1];
76
+ pullState = _useState16[0],
77
+ setPullState = _useState16[1];
76
78
  var _useState17 = useState(0),
77
79
  _useState18 = _slicedToArray(_useState17, 2),
78
- movePercent = _useState18[0],
79
- setMovePercent = _useState18[1];
80
- var _useState19 = useState(),
80
+ moveHeight = _useState18[0],
81
+ setMoveHeight = _useState18[1];
82
+ var _useState19 = useState(0),
81
83
  _useState20 = _slicedToArray(_useState19, 2),
82
- pullTimeout = _useState20[0],
83
- setPullTimeout = _useState20[1];
84
+ movePercent = _useState20[0],
85
+ setMovePercent = _useState20[1];
86
+ var _useState21 = useState(),
87
+ _useState22 = _slicedToArray(_useState21, 2),
88
+ pullTimeout = _useState22[0],
89
+ setPullTimeout = _useState22[1];
84
90
  var refreshControlRef = useRef();
85
91
  var viewRef = useRef();
86
92
  var animatedViewRef = useRef();
87
- var _useState21 = useState(-1e3),
88
- _useState22 = _slicedToArray(_useState21, 2),
89
- top = _useState22[0],
90
- setTop = _useState22[1];
91
- var _useState23 = useState(false),
93
+ var _useState23 = useState(-1e3),
92
94
  _useState24 = _slicedToArray(_useState23, 2),
93
- hasInitRefreshed = _useState24[0],
94
- setHasInitRefreshed = _useState24[1];
95
+ top = _useState24[0],
96
+ setTop = _useState24[1];
97
+ var _useState25 = useState(false),
98
+ _useState26 = _slicedToArray(_useState25, 2),
99
+ hasInitRefreshed = _useState26[0],
100
+ setHasInitRefreshed = _useState26[1];
95
101
  var performInitRefresh = function performInitRefresh() {
96
102
  if (pullAnimHeight > 0 && !hasInitRefreshed && props.initRefresh || props.refresh) {
97
103
  updatePullState(PullState.LOADING);
@@ -108,13 +114,28 @@ function PullRefresh(props) {
108
114
  performInitRefresh();
109
115
  }
110
116
  }, [props.initRefresh, pullAnimHeight, hasInitRefreshed, isRefreshing, props.refresh]);
117
+ useEffect(function () {
118
+ return function () {
119
+ if (pullTimeout) clearTimeout(pullTimeout);
120
+ if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);
121
+ };
122
+ }, [pullTimeout]);
111
123
  var onRelease = function onRelease() {
112
124
  pan.flattenOffset();
113
125
  var panValue = pan._value;
114
126
  if (panValue >= pullAnimHeight) {
115
127
  animatedTo(pullAnimHeight, function () {
116
128
  updatePullState(PullState.LOADING);
117
- props.onRequest && props.onRequest();
129
+ if (props.onRequest) {
130
+ props.onRequest();
131
+ } else {
132
+ var _props$msHoldingTime;
133
+ setInternalRefreshing(true);
134
+ if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);
135
+ androidAutoEndRef.current = setTimeout(function () {
136
+ setInternalRefreshing(false);
137
+ }, (_props$msHoldingTime = props === null || props === void 0 ? void 0 : props.msHoldingTime) !== null && _props$msHoldingTime !== void 0 ? _props$msHoldingTime : 1e3);
138
+ }
118
139
  });
119
140
  } else if (panValue > 0) {
120
141
  updatePullState(PullState.FINISH);
@@ -185,6 +206,19 @@ function PullRefresh(props) {
185
206
  return isPulling ? false : scrollY <= 0 && gestureState.vy > 0 && gestureState.vy > Math.abs(gestureState.vx);
186
207
  };
187
208
  var panResponder = useMemo(function () {
209
+ if (Platform.OS !== "ios" && props.nativeAndroidPullRefresh) {
210
+ return PanResponder.create({
211
+ onStartShouldSetPanResponder: function onStartShouldSetPanResponder() {
212
+ return false;
213
+ },
214
+ onMoveShouldSetPanResponder: function onMoveShouldSetPanResponder() {
215
+ return false;
216
+ },
217
+ onPanResponderTerminationRequest: function onPanResponderTerminationRequest() {
218
+ return true;
219
+ }
220
+ });
221
+ }
188
222
  return PanResponder.create({
189
223
  onStartShouldSetPanResponder: canMove,
190
224
  onStartShouldSetPanResponderCapture: canMove,
@@ -218,18 +252,20 @@ function PullRefresh(props) {
218
252
  return true;
219
253
  }
220
254
  });
221
- }, [isPulling, scrollY, props.initRefresh, hasInitRefreshed, pullAnimHeight]);
255
+ }, [isPulling, scrollY, props.initRefresh, hasInitRefreshed, pullAnimHeight, props.nativeAndroidPullRefresh]);
222
256
  useEffect(function () {
257
+ if (Platform.OS !== "ios" && props.nativeAndroidPullRefresh) return;
223
258
  if (pullState === PullState.PULLING && !props.initRefresh) {
224
259
  return;
225
260
  }
226
- if (props.isRefreshing === true && !isRefreshing) {
261
+ var effectiveRefreshing = !!props.isRefreshing || internalRefreshing;
262
+ if (effectiveRefreshing === true && !isRefreshing) {
227
263
  animatedTo(pullAnimHeight);
228
264
  setIsRefreshing(true);
229
265
  updatePullState(PullState.LOADING);
230
266
  }
231
- if (props.isRefreshing === false && isRefreshing) {
232
- var _props$msHoldingTime;
267
+ if (effectiveRefreshing === false && isRefreshing) {
268
+ var _props$msHoldingTime2;
233
269
  setIsPulling(false);
234
270
  updatePullState(PullState.HOLDING);
235
271
  setPullTimeout(
@@ -240,10 +276,10 @@ function PullRefresh(props) {
240
276
  updatePullState(PullState.INIT);
241
277
  });
242
278
  updatePullState(PullState.FINISH);
243
- }, (_props$msHoldingTime = props === null || props === void 0 ? void 0 : props.msHoldingTime) !== null && _props$msHoldingTime !== void 0 ? _props$msHoldingTime : 1e3));
279
+ }, (_props$msHoldingTime2 = props === null || props === void 0 ? void 0 : props.msHoldingTime) !== null && _props$msHoldingTime2 !== void 0 ? _props$msHoldingTime2 : 1e3));
244
280
  setIsRefreshing(false);
245
281
  }
246
- }, [isRefreshing, props.msHoldingTime, props.isRefreshing, pullState]);
282
+ }, [isRefreshing, props.msHoldingTime, props.isRefreshing, pullState, internalRefreshing]);
247
283
  var onLayout = function onLayout(evt) {
248
284
  var height = props.pullAnimHeight || evt.nativeEvent.layout.height;
249
285
  setPullAnimHeight(height);
@@ -252,11 +288,36 @@ function PullRefresh(props) {
252
288
  };
253
289
  var scrollContent = useMemo(function () {
254
290
  return React.Children.map(props.children, function (child) {
255
- return /*#__PURE__*/React.cloneElement(child, {
291
+ var _props$androidRefresh, _props$androidRefresh2;
292
+ return /*#__PURE__*/React.cloneElement(child, _objectSpread2({
256
293
  // 设置滚动响应频率
257
- scrollEventThrottle: 1,
258
- // 初始加载时禁用滚动
259
- scrollEnabled: !(props.initRefresh && !hasInitRefreshed && isRefreshing),
294
+ scrollEventThrottle: 1
295
+ }, Platform.OS === "android" && props.nativeAndroidPullRefresh ? {
296
+ refreshControl: /* @__PURE__ */React.createElement(RefreshControl, _objectSpread2(_objectSpread2({}, props.androidRefreshProps || {}), {}, {
297
+ colors: (_props$androidRefresh = (_props$androidRefresh2 = props.androidRefreshProps) === null || _props$androidRefresh2 === void 0 ? void 0 : _props$androidRefresh2.colors) !== null && _props$androidRefresh !== void 0 ? _props$androidRefresh : props.androidColors,
298
+ refreshing: !!props.isRefreshing || internalRefreshing,
299
+ onRefresh: function onRefresh() {
300
+ if (!!props.isRefreshing || internalRefreshing) return;
301
+ try {
302
+ props.onRequest && props.onRequest();
303
+ } finally {
304
+ var _props$msHoldingTime3;
305
+ if (!props.onRequest) {
306
+ setInternalRefreshing(true);
307
+ }
308
+ if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);
309
+ androidAutoEndRef.current = setTimeout(function () {
310
+ setInternalRefreshing(false);
311
+ }, (_props$msHoldingTime3 = props === null || props === void 0 ? void 0 : props.msHoldingTime) !== null && _props$msHoldingTime3 !== void 0 ? _props$msHoldingTime3 : 1e3);
312
+ }
313
+ }
314
+ })),
315
+ onScroll: function onScroll(evt) {
316
+ if (child.props.onScroll && typeof child.props.onScroll === "function") {
317
+ child.props.onScroll(evt);
318
+ }
319
+ }
320
+ } : {
260
321
  onScroll: function onScroll(evt) {
261
322
  setScrollY(evt.nativeEvent.contentOffset.y);
262
323
  if (pullState === PullState.LOADING && evt.nativeEvent.contentOffset.y > 0) {
@@ -280,10 +341,13 @@ function PullRefresh(props) {
280
341
  child.props.onScroll(evt);
281
342
  }
282
343
  }
283
- });
344
+ }));
284
345
  });
285
- }, [pullState, props.children, props.initRefresh, hasInitRefreshed, isRefreshing, pullAnimHeight]);
346
+ }, [pullState, props.children, pullAnimHeight, internalRefreshing, props.isRefreshing, props.nativeAndroidPullRefresh]);
286
347
  var content = useMemo(function () {
348
+ if (Platform.OS === "android" && props.nativeAndroidPullRefresh) {
349
+ return /* @__PURE__ */React.createElement(React.Fragment, null, scrollContent);
350
+ }
287
351
  return /* @__PURE__ */React.createElement(Animated.View, {
288
352
  ref: viewRef,
289
353
  style: {
@@ -293,12 +357,12 @@ function PullRefresh(props) {
293
357
  flex: 1
294
358
  }
295
359
  }, scrollContent);
296
- }, [pan, scrollContent]);
360
+ }, [pan, scrollContent, props.nativeAndroidPullRefresh]);
297
361
  return /* @__PURE__ */React.createElement(View, _objectSpread2(_objectSpread2({
298
362
  style: [styles.container, props.style]
299
- }, panResponder.panHandlers), {}, {
363
+ }, Platform.OS === "ios" || !props.nativeAndroidPullRefresh ? panResponder.panHandlers : {}), {}, {
300
364
  testID: "refresh-container"
301
- }), /* @__PURE__ */React.createElement(Animated.View, {
365
+ }), Platform.OS === "ios" || !props.nativeAndroidPullRefresh ? /* @__PURE__ */React.createElement(Animated.View, {
302
366
  ref: animatedViewRef,
303
367
  onLayout: onLayout,
304
368
  style: [styles.freshItem, {
@@ -308,11 +372,11 @@ function PullRefresh(props) {
308
372
  translateY: pan
309
373
  }]
310
374
  }, props.controlStyle]
311
- }, /* @__PURE__ */React.createElement(DefaultRefreshControl, _objectSpread2(_objectSpread2({
375
+ }, /* @__PURE__ */React.createElement(CustomRefreshControl, _objectSpread2(_objectSpread2({
312
376
  ref: refreshControlRef
313
377
  }, props), {}, {
314
378
  movePercent: movePercent
315
- }))), content);
379
+ }))) : null, content);
316
380
  }
317
381
  PullRefresh.defaultProps = PullRefreshDefaultProps;
318
382
  var styles = StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"file":"PullRefresh.js","sources":["../../../../src/components/PullRefresh/PullRefresh.tsx"],"sourcesContent":["import React, { useState, useRef, useMemo, useEffect } from \"react\";\nimport { View, StyleSheet, Animated, PanResponder, Easing, LayoutChangeEvent } from \"react-native\";\nimport { RedsPullRefresh, PullRefreshDefaultProps, PullState } from \"./interface/index\";\nimport RefreshControl from \"./component\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nexport default function PullRefresh(props: RedsPullRefresh) {\n useMounted(\"PullRefresh\");\n // RefreshControl组件高度\n const [pullAnimHeight, setPullAnimHeight] = useState(0);\n\n // 触发刷新的最小下拉距离\n const [minPullDistance, setMinPullDistance] = useState(0);\n\n // 手势\n const [pan] = useState(new Animated.Value(0));\n\n // 滚动距离\n const [scrollY, setScrollY] = useState<number>(0);\n\n // 是否在下拉中\n const [isPulling, setIsPulling] = useState<boolean>(false);\n\n // 是否在刷新中\n const [isRefreshing, setIsRefreshing] = useState<boolean>(false);\n\n // 组合动画\n const [animation, setAnimation] = useState<Animated.CompositeAnimation>();\n\n // 拉取状态\n const [pullState, setPullState] = useState<PullState>(PullState.INIT);\n\n // 移动高度\n const [moveHeight, setMoveHeight] = useState<number>(0);\n\n // 移动百分比\n const [movePercent, setMovePercent] = useState<number>(0);\n\n // 下拉时间间隔\n const [pullTimeout, setPullTimeout] = useState();\n\n // 下拉图标\n const refreshControlRef = useRef();\n\n // view ref\n const viewRef = useRef<View>();\n\n // 动画ref\n const animatedViewRef = useRef<View>();\n\n // 下拉组件的初始top值\n const [top, setTop] = useState<number>(-1000);\n\n // 标记是否已经执行过初始刷新\n const [hasInitRefreshed, setHasInitRefreshed] = useState<boolean>(false);\n\n // 执行初始刷新的方法\n const performInitRefresh = () => {\n if ((pullAnimHeight > 0 && !hasInitRefreshed && props.initRefresh) || props.refresh) {\n // 设置初始状态为拉取状态\n updatePullState(PullState.LOADING);\n\n // 执行下拉动画\n animatedTo(pullAnimHeight, () => {\n setHasInitRefreshed(true);\n setIsRefreshing(true);\n setIsPulling(true);\n // 触发刷新回调\n props.onRequest && props.onRequest();\n });\n }\n };\n\n // 监听 initRefresh 属性和相关依赖变化\n useEffect(() => {\n if ((props.initRefresh && pullAnimHeight > 0 && !hasInitRefreshed && !isRefreshing) || props.refresh) {\n performInitRefresh();\n }\n }, [props.initRefresh, pullAnimHeight, hasInitRefreshed, isRefreshing, props.refresh]);\n\n // 释放手指\n const onRelease = () => {\n // 重置偏移位置\n pan.flattenOffset();\n // @ts-ignore\n const panValue = pan._value;\n // 拉动距离大于设定下拉高度\n if (panValue >= pullAnimHeight) {\n animatedTo(pullAnimHeight, () => {\n updatePullState(PullState.LOADING);\n props.onRequest && props.onRequest();\n });\n // 有拉动距离但是不够设定的下拉高度\n } else if (panValue > 0) {\n updatePullState(PullState.FINISH);\n animatedTo(0, () => {\n setIsPulling(false);\n updatePullState(PullState.INIT);\n });\n // 否则就是初始状态\n } else {\n updatePullState(PullState.INIT);\n setIsPulling(false);\n }\n };\n\n // 更新refreshControl状态\n const updatePullState = (state: PullState) => {\n if (pullState === state) {\n return;\n }\n setPullState(state);\n renderRefreshControl(state);\n };\n\n // 下拉动画\n const animatedTo = (toValue: number, cb?: () => void) => {\n let animation: any;\n if (toValue === 0) {\n // 使用弹簧动画实现回弹效果\n animation = Animated.spring(pan, {\n toValue: toValue,\n // 回弹参数配置\n friction: 8, // 控制回弹幅度(值越小幅度越大)\n tension: 60, // 控制回弹速度(值越大速度越快)\n velocity: 1, // 初始速度,增强回弹效果\n useNativeDriver: false,\n });\n } else {\n // 针对初始加载优化动画参数\n const duration =\n !hasInitRefreshed && props.initRefresh\n ? 1000 // 初始加载时使用固定时长\n : Math.abs(((pan as any)._value - toValue) * 1.4);\n animation = Animated.timing(pan, {\n toValue: toValue,\n easing: Easing.bezier(0.1, 0.57, 0.1, 1),\n duration: duration,\n useNativeDriver: false,\n });\n }\n setAnimation(animation);\n animation.start(({ finished }: { finished: boolean }) => {\n if (finished) {\n cb && cb();\n setAnimation(undefined);\n }\n });\n };\n\n // 传递给RefreshControl组件参数用来判断状态\n const renderRefreshControl = (state?: PullState) => {\n const refreshControlProps = {\n pullAnimHeight,\n minPullDistance,\n pullState: state || pullState,\n moveHeight,\n movePercent,\n };\n if (refreshControlRef.current) {\n // @ts-ignore\n refreshControlRef.current.setRefreshControlParams(refreshControlProps);\n }\n };\n\n // 是否能移动手指 - 初始加载时禁用手势\n const canMove = (evt: any, gestureState: any) => {\n // 如果正在初始刷新,禁用手势\n if (props.initRefresh && !hasInitRefreshed) {\n return false;\n }\n return isPulling ? false : scrollY <= 0 && gestureState.vy > 0 && gestureState.vy > Math.abs(gestureState.vx);\n };\n\n // 手势对象\n const panResponder = useMemo(() => {\n return PanResponder.create({\n onStartShouldSetPanResponder: canMove,\n onStartShouldSetPanResponderCapture: canMove,\n onMoveShouldSetPanResponder: canMove,\n onMoveShouldSetPanResponderCapture: canMove,\n onPanResponderGrant: () => {\n animation && animation.stop();\n // @ts-ignore\n pan.setOffset(pan._value);\n updatePullState(PullState.PULLING);\n pullTimeout && clearTimeout(pullTimeout);\n },\n onPanResponderMove: (evt, gestureState) => {\n setIsPulling(true);\n // @ts-ignore\n const offset = pan._offset;\n let value = Math.max(offset + gestureState.dy, 0);\n if (value > 0) {\n // 弹簧劲度系数\n pan.setValue(gestureState.dy / 2.2);\n } else {\n pan.setValue(-offset);\n }\n setMoveHeight(value);\n setMovePercent((value / pullAnimHeight) * 100);\n renderRefreshControl();\n },\n onPanResponderRelease: onRelease,\n onPanResponderTerminationRequest() {\n return false;\n },\n onPanResponderTerminate: onRelease,\n onShouldBlockNativeResponder() {\n return true;\n },\n });\n }, [isPulling, scrollY, props.initRefresh, hasInitRefreshed, pullAnimHeight]);\n\n // 根据外层传递参数变化进行更新执行\n useEffect(() => {\n if (pullState === PullState.PULLING && !props.initRefresh) {\n return;\n }\n // 加载中\n if (props.isRefreshing === true && !isRefreshing) {\n animatedTo(pullAnimHeight);\n setIsRefreshing(true);\n updatePullState(PullState.LOADING);\n }\n\n // 外层加载结束 需要重置位置\n if (props.isRefreshing === false && isRefreshing) {\n setIsPulling(false);\n updatePullState(PullState.HOLDING);\n setPullTimeout(\n //@ts-ignore\n setTimeout(() => {\n animatedTo(0, () => {\n setIsPulling(false);\n updatePullState(PullState.INIT);\n });\n updatePullState(PullState.FINISH);\n }, props?.msHoldingTime ?? 1000),\n );\n\n setIsRefreshing(false);\n }\n }, [isRefreshing, props.msHoldingTime, props.isRefreshing, pullState]);\n\n // RefreshControl组件初始化计算\n const onLayout = (evt: LayoutChangeEvent) => {\n const height = props.pullAnimHeight || evt.nativeEvent.layout.height;\n setPullAnimHeight(height);\n setMinPullDistance(props.minPullDistance || height);\n setTop(-height);\n };\n\n // 重写ScrollView的onScroll事件\n const scrollContent = useMemo(() => {\n return React.Children.map(props.children, (child: any) =>\n React.cloneElement(child, {\n // 设置滚动响应频率\n scrollEventThrottle: 1,\n // 初始加载时禁用滚动\n scrollEnabled: !(props.initRefresh && !hasInitRefreshed && isRefreshing),\n onScroll: (evt: any) => {\n setScrollY(evt.nativeEvent.contentOffset.y);\n // iOS下拉刷新Loading时,ScrollView向上滑动的时候,refreshControl部分同样上滑\n if (pullState === PullState.LOADING && evt.nativeEvent.contentOffset.y > 0) {\n const y = Math.max(0, pullAnimHeight - evt.nativeEvent.contentOffset.y);\n viewRef.current &&\n viewRef.current.setNativeProps({\n style: {\n transform: [{ translateY: y }],\n },\n });\n animatedViewRef.current &&\n animatedViewRef.current.setNativeProps({\n style: {\n transform: [{ translateY: y }],\n },\n });\n }\n if (child.props.onScroll && typeof child.props.onScroll === \"function\") {\n child.props.onScroll(evt);\n }\n },\n }),\n );\n }, [pullState, props.children, props.initRefresh, hasInitRefreshed, isRefreshing, pullAnimHeight]);\n\n // 增加Animated.View控制ScrollView展示位置\n const content = useMemo(() => {\n // 默认\n return (\n <Animated.View\n // @ts-ignore\n ref={viewRef}\n style={{\n transform: [{ translateY: pan }],\n flex: 1,\n }}\n >\n {scrollContent}\n </Animated.View>\n );\n }, [pan, scrollContent]);\n\n return (\n <View style={[styles.container, props.style]} {...panResponder.panHandlers} testID=\"refresh-container\">\n <Animated.View\n // @ts-ignore\n ref={animatedViewRef}\n onLayout={onLayout}\n style={[\n styles.freshItem,\n {\n top: top,\n height: props.pullAnimHeight,\n transform: [{ translateY: pan }],\n },\n props.controlStyle,\n ]}\n >\n {/* @ts-ignore */}\n <RefreshControl ref={refreshControlRef} {...props} movePercent={movePercent} />\n </Animated.View>\n {content}\n </View>\n );\n}\nPullRefresh.defaultProps = PullRefreshDefaultProps;\n\nconst styles = StyleSheet.create({\n container: {\n overflow: \"hidden\",\n position: \"relative\",\n flex: 1,\n },\n freshItem: {\n position: \"absolute\",\n width: \"100%\",\n justifyContent: \"center\",\n alignItems: \"center\",\n zIndex: 1,\n },\n});\n"],"names":["PullRefresh","props","useMounted","_useState","useState","_useState2","_slicedToArray","pullAnimHeight","setPullAnimHeight","_useState3","_useState4","minPullDistance","setMinPullDistance","_useState5","Animated","Value","_useState6","pan","_useState7","_useState8","scrollY","setScrollY","_useState9","_useState0","isPulling","setIsPulling","_useState1","_useState10","isRefreshing","setIsRefreshing","_useState11","_useState12","animation","setAnimation","_useState13","PullState","INIT","_useState14","pullState","setPullState","_useState15","_useState16","moveHeight","setMoveHeight","_useState17","_useState18","movePercent","setMovePercent","_useState19","_useState20","pullTimeout","setPullTimeout","refreshControlRef","useRef","viewRef","animatedViewRef","_useState21","_useState22","top","setTop","_useState23","_useState24","hasInitRefreshed","setHasInitRefreshed","performInitRefresh","initRefresh","refresh","updatePullState","LOADING","animatedTo","onRequest","useEffect","onRelease","flattenOffset","panValue","_value","FINISH","state","renderRefreshControl","toValue","cb","spring","friction","tension","velocity","useNativeDriver","duration","Math","abs","timing","easing","Easing","bezier","start","_ref","finished","refreshControlProps","current","setRefreshControlParams","canMove","evt","gestureState","vy","vx","panResponder","useMemo","PanResponder","create","onStartShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderGrant","stop","setOffset","PULLING","clearTimeout","onPanResponderMove","offset","_offset","value","max","dy","setValue","onPanResponderRelease","onPanResponderTerminationRequest","onPanResponderTerminate","onShouldBlockNativeResponder","_props$msHoldingTime","HOLDING","setTimeout","msHoldingTime","onLayout","height","nativeEvent","layout","scrollContent","React","Children","map","children","child","cloneElement","scrollEventThrottle","scrollEnabled","onScroll","contentOffset","y","setNativeProps","style","transform","translateY","content","createElement","View","ref","flex","_objectSpread","styles","container","panHandlers","testID","freshItem","controlStyle","RefreshControl","defaultProps","PullRefreshDefaultProps","StyleSheet","overflow","position","width","justifyContent","alignItems","zIndex"],"mappings":"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"}
1
+ {"version":3,"file":"PullRefresh.js","sources":["../../../../src/components/PullRefresh/PullRefresh.tsx"],"sourcesContent":["import React, { useState, useRef, useMemo, useEffect } from \"react\";\nimport {\n View,\n StyleSheet,\n Animated,\n PanResponder,\n Easing,\n LayoutChangeEvent,\n Platform,\n RefreshControl as RNRefreshControl,\n} from \"react-native\";\nimport { RedsPullRefresh, PullRefreshDefaultProps, PullState } from \"./interface/index\";\nimport RefreshControl from \"./component\";\n// alias to avoid confusion when reading diff\nconst CustomRefreshControl = RefreshControl;\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nexport default function PullRefresh(props: RedsPullRefresh) {\n useMounted(\"PullRefresh\");\n // RefreshControl组件高度\n const [pullAnimHeight, setPullAnimHeight] = useState(0);\n\n // 触发刷新的最小下拉距离\n const [minPullDistance, setMinPullDistance] = useState(0);\n\n // 手势\n const [pan] = useState(new Animated.Value(0));\n\n // 滚动距离\n const [scrollY, setScrollY] = useState<number>(0);\n\n // 是否在下拉中\n const [isPulling, setIsPulling] = useState<boolean>(false);\n\n // 是否在刷新中\n const [isRefreshing, setIsRefreshing] = useState<boolean>(false);\n\n // 内部刷新状态(用于默认启用,特别是 Android 或未提供回调时)\n const [internalRefreshing, setInternalRefreshing] = useState<boolean>(false);\n // Android 自动结束计时器\n const androidAutoEndRef = useRef<any>();\n\n // 组合动画\n const [animation, setAnimation] = useState<Animated.CompositeAnimation>();\n\n // 拉取状态\n const [pullState, setPullState] = useState<PullState>(PullState.INIT);\n\n // 移动高度\n const [moveHeight, setMoveHeight] = useState<number>(0);\n\n // 移动百分比\n const [movePercent, setMovePercent] = useState<number>(0);\n\n // 下拉时间间隔\n const [pullTimeout, setPullTimeout] = useState();\n\n // 下拉图标\n const refreshControlRef = useRef();\n\n // view ref\n const viewRef = useRef<View>();\n\n // 动画ref\n const animatedViewRef = useRef<View>();\n\n // 下拉组件的初始top值\n const [top, setTop] = useState<number>(-1000);\n\n // 标记是否已经执行过初始刷新\n const [hasInitRefreshed, setHasInitRefreshed] = useState<boolean>(false);\n\n // 执行初始刷新的方法\n const performInitRefresh = () => {\n if ((pullAnimHeight > 0 && !hasInitRefreshed && props.initRefresh) || props.refresh) {\n // 设置初始状态为拉取状态\n updatePullState(PullState.LOADING);\n\n // 执行下拉动画\n animatedTo(pullAnimHeight, () => {\n setHasInitRefreshed(true);\n setIsRefreshing(true);\n setIsPulling(true);\n // 触发刷新回调\n props.onRequest && props.onRequest();\n });\n }\n };\n\n // 监听 initRefresh 属性和相关依赖变化\n useEffect(() => {\n if ((props.initRefresh && pullAnimHeight > 0 && !hasInitRefreshed && !isRefreshing) || props.refresh) {\n performInitRefresh();\n }\n }, [props.initRefresh, pullAnimHeight, hasInitRefreshed, isRefreshing, props.refresh]);\n // 卸载清理:超时计时器\n useEffect(() => {\n return () => {\n // @ts-ignore\n if (pullTimeout) clearTimeout(pullTimeout);\n if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);\n };\n }, [pullTimeout]);\n\n // 释放手指\n const onRelease = () => {\n // 重置偏移位置\n pan.flattenOffset();\n // @ts-ignore\n const panValue = pan._value;\n // 拉动距离大于设定下拉高度\n if (panValue >= pullAnimHeight) {\n animatedTo(pullAnimHeight, () => {\n updatePullState(PullState.LOADING);\n // 如果有回调则调用,否则走默认内部流程(iOS 默认也支持)\n if (props.onRequest) {\n props.onRequest();\n } else {\n setInternalRefreshing(true);\n // 启动一个自动结束计时器,避免没有外部状态时卡住\n if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);\n androidAutoEndRef.current = setTimeout(() => {\n setInternalRefreshing(false);\n }, props?.msHoldingTime ?? 1000);\n }\n });\n // 有拉动距离但是不够设定的下拉高度\n } else if (panValue > 0) {\n updatePullState(PullState.FINISH);\n animatedTo(0, () => {\n setIsPulling(false);\n updatePullState(PullState.INIT);\n });\n // 否则就是初始状态\n } else {\n updatePullState(PullState.INIT);\n setIsPulling(false);\n }\n };\n\n // 更新refreshControl状态\n const updatePullState = (state: PullState) => {\n if (pullState === state) {\n return;\n }\n setPullState(state);\n renderRefreshControl(state);\n };\n\n // 下拉动画\n const animatedTo = (toValue: number, cb?: () => void) => {\n let animation: any;\n if (toValue === 0) {\n // 使用弹簧动画实现回弹效果\n animation = Animated.spring(pan, {\n toValue: toValue,\n // 回弹参数配置\n friction: 8, // 控制回弹幅度(值越小幅度越大)\n tension: 60, // 控制回弹速度(值越大速度越快)\n velocity: 1, // 初始速度,增强回弹效果\n useNativeDriver: false,\n });\n } else {\n // 针对初始加载优化动画参数\n const duration =\n !hasInitRefreshed && props.initRefresh\n ? 1000 // 初始加载时使用固定时长\n : Math.abs(((pan as any)._value - toValue) * 1.4);\n animation = Animated.timing(pan, {\n toValue: toValue,\n easing: Easing.bezier(0.1, 0.57, 0.1, 1),\n duration: duration,\n useNativeDriver: false,\n });\n }\n setAnimation(animation);\n animation.start(({ finished }: { finished: boolean }) => {\n if (finished) {\n cb && cb();\n setAnimation(undefined);\n }\n });\n };\n\n // 传递给RefreshControl组件参数用来判断状态\n const renderRefreshControl = (state?: PullState) => {\n const refreshControlProps = {\n pullAnimHeight,\n minPullDistance,\n pullState: state || pullState,\n moveHeight,\n movePercent,\n };\n if (refreshControlRef.current) {\n // @ts-ignore\n refreshControlRef.current.setRefreshControlParams(refreshControlProps);\n }\n };\n\n // 是否能移动手指 - 初始加载时禁用手势\n const canMove = (evt: any, gestureState: any) => {\n // 如果正在初始刷新,禁用手势\n if (props.initRefresh && !hasInitRefreshed) {\n return false;\n }\n return isPulling ? false : scrollY <= 0 && gestureState.vy > 0 && gestureState.vy > Math.abs(gestureState.vx);\n };\n\n // 手势对象\n const panResponder = useMemo(() => {\n if (Platform.OS !== \"ios\" && props.nativeAndroidPullRefresh) {\n // Android 原生下拉时不启用自定义手势\n return PanResponder.create({\n onStartShouldSetPanResponder: () => false,\n onMoveShouldSetPanResponder: () => false,\n onPanResponderTerminationRequest: () => true,\n });\n }\n return PanResponder.create({\n onStartShouldSetPanResponder: canMove,\n onStartShouldSetPanResponderCapture: canMove,\n onMoveShouldSetPanResponder: canMove,\n onMoveShouldSetPanResponderCapture: canMove,\n onPanResponderGrant: () => {\n animation && animation.stop();\n // @ts-ignore\n pan.setOffset(pan._value);\n updatePullState(PullState.PULLING);\n pullTimeout && clearTimeout(pullTimeout);\n },\n onPanResponderMove: (evt, gestureState) => {\n setIsPulling(true);\n // @ts-ignore\n const offset = pan._offset;\n let value = Math.max(offset + gestureState.dy, 0);\n if (value > 0) {\n // 弹簧劲度系数\n pan.setValue(gestureState.dy / 2.2);\n } else {\n pan.setValue(-offset);\n }\n setMoveHeight(value);\n setMovePercent((value / pullAnimHeight) * 100);\n renderRefreshControl();\n },\n onPanResponderRelease: onRelease,\n onPanResponderTerminationRequest() {\n return false;\n },\n onPanResponderTerminate: onRelease,\n onShouldBlockNativeResponder() {\n return true;\n },\n });\n }, [isPulling, scrollY, props.initRefresh, hasInitRefreshed, pullAnimHeight, props.nativeAndroidPullRefresh]);\n\n // 根据外层传递参数变化进行更新执行(自定义实现启用时)\n useEffect(() => {\n if (Platform.OS !== \"ios\" && props.nativeAndroidPullRefresh) return;\n if (pullState === PullState.PULLING && !props.initRefresh) {\n return;\n }\n // 加载中\n const effectiveRefreshing = !!props.isRefreshing || internalRefreshing;\n if (effectiveRefreshing === true && !isRefreshing) {\n animatedTo(pullAnimHeight);\n setIsRefreshing(true);\n updatePullState(PullState.LOADING);\n }\n\n // 外层加载结束 需要重置位置\n if (effectiveRefreshing === false && isRefreshing) {\n setIsPulling(false);\n updatePullState(PullState.HOLDING);\n setPullTimeout(\n //@ts-ignore\n setTimeout(() => {\n animatedTo(0, () => {\n setIsPulling(false);\n updatePullState(PullState.INIT);\n });\n updatePullState(PullState.FINISH);\n }, props?.msHoldingTime ?? 1000),\n );\n\n setIsRefreshing(false);\n }\n }, [isRefreshing, props.msHoldingTime, props.isRefreshing, pullState, internalRefreshing]);\n\n // RefreshControl组件初始化计算\n const onLayout = (evt: LayoutChangeEvent) => {\n const height = props.pullAnimHeight || evt.nativeEvent.layout.height;\n setPullAnimHeight(height);\n setMinPullDistance(props.minPullDistance || height);\n setTop(-height);\n };\n\n // 重写ScrollView的onScroll事件(自定义:用于手势门控/头部位置; Android 原生:注入 RefreshControl)\n const scrollContent = useMemo(() => {\n return React.Children.map(props.children, (child: any) =>\n React.cloneElement(child, {\n // 设置滚动响应频率\n scrollEventThrottle: 1,\n ...(Platform.OS === \"android\" && props.nativeAndroidPullRefresh\n ? {\n refreshControl: (\n <RNRefreshControl\n {...(props.androidRefreshProps || {})}\n colors={((props.androidRefreshProps as any)?.colors ?? props.androidColors) as any}\n refreshing={!!props.isRefreshing || internalRefreshing}\n onRefresh={() => {\n if (!!props.isRefreshing || internalRefreshing) return;\n try {\n props.onRequest && props.onRequest();\n } finally {\n // 默认启用:无回调或未受控时自动结束\n if (!props.onRequest) {\n setInternalRefreshing(true);\n }\n // 无论是否有回调,都启动一个兜底自动结束(避免卡住)\n if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);\n androidAutoEndRef.current = setTimeout(() => {\n setInternalRefreshing(false);\n }, props?.msHoldingTime ?? 1000);\n }\n }}\n />\n ),\n onScroll: (evt: any) => {\n if (child.props.onScroll && typeof child.props.onScroll === \"function\") {\n child.props.onScroll(evt);\n }\n },\n }\n : {\n onScroll: (evt: any) => {\n setScrollY(evt.nativeEvent.contentOffset.y);\n // iOS下拉刷新Loading时,ScrollView向上滑动的时候,refreshControl部分同样上滑\n if (pullState === PullState.LOADING && evt.nativeEvent.contentOffset.y > 0) {\n const y = Math.max(0, pullAnimHeight - evt.nativeEvent.contentOffset.y);\n viewRef.current &&\n viewRef.current.setNativeProps({\n style: {\n transform: [{ translateY: y }],\n },\n });\n animatedViewRef.current &&\n animatedViewRef.current.setNativeProps({\n style: {\n transform: [{ translateY: y }],\n },\n });\n }\n if (child.props.onScroll && typeof child.props.onScroll === \"function\") {\n child.props.onScroll(evt);\n }\n },\n }),\n }),\n );\n }, [\n pullState,\n props.children,\n pullAnimHeight,\n internalRefreshing,\n props.isRefreshing,\n props.nativeAndroidPullRefresh,\n ]);\n\n // 增加Animated.View控制ScrollView展示位置(自定义)\n const content = useMemo(() => {\n if (Platform.OS === \"android\" && props.nativeAndroidPullRefresh) {\n // Android 直接返回内容(由 RN RefreshControl 控制)\n return <>{scrollContent}</>;\n }\n return (\n <Animated.View\n // @ts-ignore\n ref={viewRef}\n style={{\n transform: [{ translateY: pan }],\n flex: 1,\n }}\n >\n {scrollContent}\n </Animated.View>\n );\n }, [pan, scrollContent, props.nativeAndroidPullRefresh]);\n\n return (\n <View\n style={[styles.container, props.style]}\n {...(Platform.OS === \"ios\" || !props.nativeAndroidPullRefresh ? panResponder.panHandlers : {})}\n testID=\"refresh-container\"\n >\n {Platform.OS === \"ios\" || !props.nativeAndroidPullRefresh ? (\n <Animated.View\n // @ts-ignore\n ref={animatedViewRef}\n onLayout={onLayout}\n style={[\n styles.freshItem,\n {\n top: top,\n height: props.pullAnimHeight,\n transform: [{ translateY: pan }],\n },\n props.controlStyle,\n ]}\n >\n {/* @ts-ignore */}\n <CustomRefreshControl ref={refreshControlRef} {...props} movePercent={movePercent} />\n </Animated.View>\n ) : null}\n {content}\n </View>\n );\n}\nPullRefresh.defaultProps = PullRefreshDefaultProps;\n\nconst styles = StyleSheet.create({\n container: {\n overflow: \"hidden\",\n position: \"relative\",\n flex: 1,\n },\n freshItem: {\n position: \"absolute\",\n width: \"100%\",\n justifyContent: \"center\",\n alignItems: \"center\",\n zIndex: 1,\n },\n});\n"],"names":["CustomRefreshControl","RefreshControl","PullRefresh","props","useMounted","_useState","useState","_useState2","_slicedToArray","pullAnimHeight","setPullAnimHeight","_useState3","_useState4","minPullDistance","setMinPullDistance","_useState5","Animated","Value","_useState6","pan","_useState7","_useState8","scrollY","setScrollY","_useState9","_useState0","isPulling","setIsPulling","_useState1","_useState10","isRefreshing","setIsRefreshing","_useState11","_useState12","internalRefreshing","setInternalRefreshing","androidAutoEndRef","useRef","_useState13","_useState14","animation","setAnimation","_useState15","PullState","INIT","_useState16","pullState","setPullState","_useState17","_useState18","moveHeight","setMoveHeight","_useState19","_useState20","movePercent","setMovePercent","_useState21","_useState22","pullTimeout","setPullTimeout","refreshControlRef","viewRef","animatedViewRef","_useState23","_useState24","top","setTop","_useState25","_useState26","hasInitRefreshed","setHasInitRefreshed","performInitRefresh","initRefresh","refresh","updatePullState","LOADING","animatedTo","onRequest","useEffect","current","clearTimeout","onRelease","flattenOffset","panValue","_value","_props$msHoldingTime","setTimeout","msHoldingTime","FINISH","state","renderRefreshControl","toValue","cb","spring","friction","tension","velocity","useNativeDriver","duration","Math","abs","timing","easing","Easing","bezier","start","_ref","finished","refreshControlProps","setRefreshControlParams","canMove","evt","gestureState","vy","vx","panResponder","useMemo","Platform","OS","nativeAndroidPullRefresh","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderTerminationRequest","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponderCapture","onPanResponderGrant","stop","setOffset","PULLING","onPanResponderMove","offset","_offset","value","max","dy","setValue","onPanResponderRelease","onPanResponderTerminate","onShouldBlockNativeResponder","effectiveRefreshing","_props$msHoldingTime2","HOLDING","onLayout","height","nativeEvent","layout","scrollContent","React","Children","map","children","child","_props$androidRefresh","_props$androidRefresh2","cloneElement","_objectSpread","scrollEventThrottle","refreshControl","createElement","RNRefreshControl","androidRefreshProps","colors","androidColors","refreshing","onRefresh","_props$msHoldingTime3","onScroll","contentOffset","y","setNativeProps","style","transform","translateY","content","View","ref","flex","styles","container","panHandlers","testID","freshItem","controlStyle","defaultProps","PullRefreshDefaultProps","StyleSheet","overflow","position","width","justifyContent","alignItems","zIndex"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { View, Text } from 'react-native';
4
4
  import ProgressIndicator from '../ProgressIndicator/ProgressIndicator.js';
5
5
  import '../LanguageProvider/LanguageProvider.js';
6
6
  import { useLanguage } from '../LanguageProvider/hooks/useLanguage.js';
7
- import { P as PullState } from '../../_chunks/CZtagXcj.js';
7
+ import { P as PullState } from '../../_chunks/gC9g4Fr_.js';
8
8
  import CircleAnimation from './Refresh.js';
9
9
  import '../../_chunks/B_AP2PTq.js';
10
10
  import '../ProgressIndicator/lottie/getLottieSource.js';
@@ -1,5 +1,5 @@
1
1
  import PullRefresh from './PullRefresh.js';
2
- export { i as PullRefreshType } from '../../_chunks/CZtagXcj.js';
2
+ export { i as PullRefreshType } from '../../_chunks/gC9g4Fr_.js';
3
3
  import '../../_chunks/CAkwE9ZD.js';
4
4
  import 'react';
5
5
  import 'react-native';
@@ -1,2 +1,2 @@
1
- export { a as PullRefreshDefaultProps, P as PullState } from '../../../_chunks/CZtagXcj.js';
1
+ export { a as PullRefreshDefaultProps, P as PullState } from '../../../_chunks/gC9g4Fr_.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -119,7 +119,7 @@ import '../../_chunks/BoucDqUg.js';
119
119
  import '../Result/Result.js';
120
120
  import '../../_chunks/BKS4Pa1R.js';
121
121
  import '../PullRefresh/PullRefresh.js';
122
- import '../../_chunks/CZtagXcj.js';
122
+ import '../../_chunks/gC9g4Fr_.js';
123
123
  import Icon from '../Icon/Icon.js';
124
124
  import { i as iconType } from '../../_chunks/xi-gXLIR.js';
125
125
  import '../Badge/Badge.js';
@@ -229,8 +229,9 @@ import '../Image/styles.js';
229
229
  import '../Image/hook/index.js';
230
230
  import '../Image/CircularProgress.js';
231
231
  import '../Image/utils.js';
232
- import '../Image/VisibilitySensor.js';
233
232
  import '../Image/apm.js';
233
+ import '../Image/queryCacheBatcher.js';
234
+ import '../Image/VisibilitySensor.js';
234
235
  import '../Popover/component.js';
235
236
  import '../Switch/styles.js';
236
237
  import '../Text/hooks/cloneContainer.js';
@@ -299,9 +300,9 @@ var Radio = function Radio(props) {
299
300
  var iconStyleClass = getIconStyleClass(_checked, size, disabled || (parent === null || parent === void 0 ? void 0 : parent.disabled), parent === null || parent === void 0 ? void 0 : parent.position, parent === null || parent === void 0 ? void 0 : parent.direction);
300
301
  var labelStyle = getLabelStyle(disabled || (parent === null || parent === void 0 ? void 0 : parent.disabled), size, parent === null || parent === void 0 ? void 0 : parent.direction);
301
302
  var iconSizeMap = {
302
- small: 16,
303
- medium: 20,
304
- large: 24
303
+ small: 12,
304
+ medium: 16,
305
+ large: 20
305
306
  };
306
307
  var rightStyle = getRightIconStyle(size);
307
308
  var rightWrapperStyle = getRightWrapperStyle(size, themeColor, props.themeColor);