@xhsreds/reds-rn-next 0.10.1-beta202511202010 → 0.10.1-fix-pull-refresh-animated202511211152
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-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-18.json +1 -1
- package/coverage/.tmp/coverage-19.json +1 -1
- package/coverage/.tmp/coverage-2.json +1 -1
- package/coverage/.tmp/coverage-20.json +1 -1
- package/coverage/.tmp/coverage-21.json +1 -1
- package/coverage/.tmp/coverage-23.json +1 -1
- package/coverage/.tmp/coverage-25.json +1 -1
- package/coverage/.tmp/coverage-27.json +1 -1
- package/coverage/.tmp/coverage-28.json +1 -1
- package/coverage/.tmp/coverage-29.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-36.json +1 -1
- package/coverage/.tmp/coverage-37.json +1 -1
- package/coverage/.tmp/coverage-39.json +1 -1
- package/coverage/.tmp/coverage-40.json +1 -1
- package/coverage/.tmp/coverage-41.json +1 -1
- package/coverage/.tmp/coverage-42.json +1 -1
- package/coverage/.tmp/coverage-43.json +1 -1
- package/coverage/.tmp/coverage-5.json +1 -1
- package/coverage/.tmp/coverage-6.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/components/PickerView/Wheel.js +15 -21
- package/lib/cjs/components/PickerView/Wheel.js.map +1 -1
- package/lib/cjs/components/PullRefresh/PullRefresh.js +40 -10
- package/lib/cjs/components/PullRefresh/PullRefresh.js.map +1 -1
- package/lib/cjs/components/Radio/Radio.js +3 -3
- package/lib/cjs/components/Radio/Radio.js.map +1 -1
- package/lib/cjs/components/Radio/styles.js +7 -5
- package/lib/cjs/components/Radio/styles.js.map +1 -1
- package/lib/cjs/components/Sheets/AnimatedSheets.js +2 -2
- package/lib/cjs/components/Sheets/AnimatedSheets.js.map +1 -1
- package/lib/cjs/components/Slider/Slider.js +34 -74
- package/lib/cjs/components/Slider/Slider.js.map +1 -1
- package/lib/cjs/components/TextView/TextView.js +3 -6
- package/lib/cjs/components/TextView/TextView.js.map +1 -1
- package/lib/esm/components/PickerView/Wheel.js +15 -21
- package/lib/esm/components/PickerView/Wheel.js.map +1 -1
- package/lib/esm/components/PullRefresh/PullRefresh.js +40 -10
- package/lib/esm/components/PullRefresh/PullRefresh.js.map +1 -1
- package/lib/esm/components/Radio/Radio.js +3 -3
- package/lib/esm/components/Radio/Radio.js.map +1 -1
- package/lib/esm/components/Radio/styles.js +7 -5
- package/lib/esm/components/Radio/styles.js.map +1 -1
- package/lib/esm/components/Sheets/AnimatedSheets.js +2 -2
- package/lib/esm/components/Sheets/AnimatedSheets.js.map +1 -1
- package/lib/esm/components/Slider/Slider.js +36 -76
- package/lib/esm/components/Slider/Slider.js.map +1 -1
- package/lib/esm/components/TextView/TextView.js +3 -6
- package/lib/esm/components/TextView/TextView.js.map +1 -1
- package/lib/src/components/Slider/Slider.d.ts +1 -1
- package/lib/types/components/Slider/Slider.d.ts +1 -1
- package/package.json +2 -2
- package/src/components/DatePicker/demo/index.tsx +0 -26
- package/src/components/PickerView/Wheel.tsx +11 -14
- package/src/components/PullRefresh/PullRefresh.tsx +69 -33
- package/src/components/Radio/Radio.tsx +3 -3
- package/src/components/Radio/styles.ts +5 -3
- package/src/components/Sheets/AnimatedSheets.tsx +112 -116
- package/src/components/Slider/Slider.tsx +37 -103
- package/src/components/Slider/demo/index.tsx +0 -18
- package/src/components/TextView/TextView.tsx +3 -6
- package/src/components/TextView/demo/index.tsx +1 -1
- package/src/i18n/@types/resources.d.ts +27 -27
- package/src/i18n/index.json +31 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextView.js","sources":["../../../../src/components/TextView/TextView.tsx"],"sourcesContent":["import { useState, useRef, useEffect, useCallback, useMemo, forwardRef, useImperativeHandle } from \"react\";\nimport { TextInput, View, Text, TouchableWithoutFeedback, ColorValue, Keyboard, Platform } from \"react-native\";\nimport { TextViewDefaultProps, RedsTextView } from \"./interface\";\nimport createStyles from \"./styles\";\nimport runes from \"runes\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nimport { useThemeColor } from \"../ConfigProvider\";\n\nconst TextField = forwardRef((props: RedsTextView, ref) => {\n const {\n type,\n modelValue,\n clearable = false,\n maxLength,\n disabled = false,\n readonly,\n autofocus = false,\n showCount = false,\n placeholder,\n rows = 3,\n onFocus,\n onBlur,\n onChange,\n onClear,\n style = {},\n containerStyle = {},\n layout,\n actionLayout,\n placeholderTextColor,\n } = props || {};\n useMounted(\"TextView\");\n const styles = createStyles(disabled, actionLayout || \"vertical\");\n const [focused, setFocused] = useState(autofocus);\n const [value, setValue] = useState(modelValue || \"\");\n const [modelValueStringLength, setModelValueStringLength] = useState(0);\n const [showClear, setShowClear] = useState(false);\n const [showActionArea, setShowActionArea] = useState(false);\n const inputRef = useRef<TextInput>(null);\n const themeColor = useThemeColor();\n\n const limitValueLength = useCallback(\n (value: string) => {\n const valueLength = runes(value || \"\").length;\n if (typeof maxLength === \"number\" && valueLength > maxLength) {\n const mValue = value;\n if (mValue && modelValueStringLength === +maxLength) {\n return mValue;\n }\n return runes.substr(value, 0, +maxLength);\n }\n return value;\n },\n [maxLength],\n );\n\n useImperativeHandle(ref, () => ({\n textInputRef: inputRef,\n }));\n\n const updateValue = useCallback(\n (upValue: string) => {\n // let value = limitValueLength(upValue);\n onChange && onChange(upValue);\n setValue(upValue);\n },\n [onChange],\n );\n\n const handleChangeText = useCallback(\n (value: string) => {\n const filteredValue = props.returnKeyType !== \"next\" ? value.replace(/\\n/g, \"\") : value;\n updateValue(filteredValue);\n // Only apply cursor fix on iOS when text equals maxLength (indicating truncation)\n if (Platform.OS === \"ios\" && maxLength && value.length >= maxLength && inputRef.current) {\n // Use requestAnimationFrame instead of setTimeout\n requestAnimationFrame(() => {\n inputRef.current?.setNativeProps({\n selection: { start: maxLength, end: maxLength },\n });\n });\n }\n },\n [maxLength, updateValue],\n );\n\n const handleClear = useCallback(() => {\n setValue(\"\");\n updateValue(\"\");\n onClear && onClear(value);\n }, [onClear]);\n\n const handleFocus = useCallback(() => {\n if (readonly) {\n inputRef.current?.blur();\n }\n setFocused(true);\n onFocus && onFocus(value);\n }, [onFocus, readonly]);\n\n const handleBlur = useCallback(() => {\n setFocused(false);\n if (!readonly) {\n onBlur && onBlur(value);\n }\n }, [readonly, onBlur]);\n\n useEffect(() => {\n setValue(modelValue || \"\");\n }, [modelValue]);\n\n useEffect(() => {\n setShowClear(clearable && value.length > 0);\n }, [clearable, value]);\n\n useEffect(() => {\n setFocused(autofocus);\n }, [autofocus]);\n\n useEffect(() => {\n // setModelValueStringLength(runes(value).length);\n setModelValueStringLength(value.length);\n }, [value]);\n\n useEffect(() => {\n setShowActionArea(showClear || showCount);\n }, [showClear, showCount]);\n\n const textFieldColor = useMemo(() => {\n const ColorMap = {\n primary: themeColor.Primary2,\n normal: themeColor.Fill1,\n basic: themeColor.Bg,\n };\n return ColorMap[layout!];\n }, [layout]);\n\n const handleKeyPress = ({ nativeEvent }: any) => {\n if (nativeEvent.key === \"Enter\") {\n if (props.returnKeyType !== \"next\") {\n Keyboard.dismiss();\n }\n }\n };\n\n return (\n <View testID=\"wrapper\" style={[styles.wrapper, { backgroundColor: textFieldColor }, containerStyle]}>\n <TextInput\n testID=\"text-input\"\n ref={inputRef}\n style={[styles.input, { minHeight: rows * 24, height: \"auto\" }, style]}\n value={value}\n onChangeText={handleChangeText}\n onFocus={handleFocus}\n onBlur={handleBlur}\n editable={!readonly && !disabled}\n keyboardType={type}\n placeholder={placeholder}\n multiline\n returnKeyType={props.returnKeyType as any}\n autoFocus={focused}\n maxLength={maxLength}\n onKeyPress={handleKeyPress}\n onSubmitEditing={props.onSubmitEditing}\n selectionColor={styles.inputSelectionColor.color}\n placeholderTextColor={(placeholderTextColor || styles.inputPlaceHolder.color) as ColorValue}\n />\n {showActionArea && (\n <View style={[styles.ButtomActionArea]} testID=\"action-area\">\n {showCount && maxLength && (\n <View style={styles.rightItem}>\n <Text style={styles.count}>{`${Math.min(modelValueStringLength, maxLength)}/${maxLength}`}</Text>\n </View>\n )}\n {showClear && modelValueStringLength && focused && (\n <View style={styles.rightItem}>\n <TouchableWithoutFeedback onPress={handleClear}>\n <View style={styles.clearIconContainer}>\n <Text style={styles.clearIcon}>清空</Text>\n </View>\n </TouchableWithoutFeedback>\n </View>\n )}\n </View>\n )}\n </View>\n );\n});\n\n// @ts-ignore\nTextField.defaultProps = TextViewDefaultProps;\n\nexport default TextField;\n"],"names":["TextField","forwardRef","props","ref","_ref","type","modelValue","_ref$clearable","clearable","maxLength","_ref$disabled","disabled","readonly","_ref$autofocus","autofocus","_ref$showCount","showCount","placeholder","_ref$rows","rows","onFocus","onBlur","onChange","onClear","_ref$style","style","_ref$containerStyle","containerStyle","layout","actionLayout","placeholderTextColor","useMounted","styles","createStyles","_useState","useState","_useState2","_slicedToArray","focused","setFocused","_useState3","_useState4","value","setValue","_useState5","_useState6","modelValueStringLength","setModelValueStringLength","_useState7","_useState8","showClear","setShowClear","_useState9","_useState0","showActionArea","setShowActionArea","inputRef","useRef","themeColor","useThemeColor","useCallback","valueLength","runes","length","mValue","substr","useImperativeHandle","textInputRef","updateValue","upValue","handleChangeText","filteredValue","returnKeyType","replace","Platform","OS","current","requestAnimationFrame","_inputRef$current","setNativeProps","selection","start","end","handleClear","handleFocus","_inputRef$current2","blur","handleBlur","useEffect","textFieldColor","useMemo","ColorMap","primary","Primary2","normal","Fill1","basic","Bg","handleKeyPress","_ref2","nativeEvent","key","Keyboard","dismiss","React","createElement","View","testID","wrapper","backgroundColor","TextInput","input","minHeight","height","onChangeText","editable","keyboardType","multiline","autoFocus","onKeyPress","onSubmitEditing","selectionColor","inputSelectionColor","color","inputPlaceHolder","ButtomActionArea","rightItem","Text","count","concat","Math","min","TouchableWithoutFeedback","onPress","clearIconContainer","clearIcon","defaultProps","TextViewDefaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TextView.js","sources":["../../../../src/components/TextView/TextView.tsx"],"sourcesContent":["import { useState, useRef, useEffect, useCallback, useMemo, forwardRef, useImperativeHandle } from \"react\";\nimport { TextInput, View, Text, TouchableWithoutFeedback, ColorValue, Keyboard, Platform } from \"react-native\";\nimport { TextViewDefaultProps, RedsTextView } from \"./interface\";\nimport createStyles from \"./styles\";\nimport runes from \"runes\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nimport { useThemeColor } from \"../ConfigProvider\";\n\nconst TextField = forwardRef((props: RedsTextView, ref) => {\n const {\n type,\n modelValue,\n clearable = false,\n maxLength,\n disabled = false,\n readonly,\n autofocus = false,\n showCount = false,\n placeholder,\n rows = 3,\n onFocus,\n onBlur,\n onChange,\n onClear,\n style = {},\n containerStyle = {},\n layout,\n actionLayout,\n placeholderTextColor,\n } = props || {};\n useMounted(\"TextView\");\n const styles = createStyles(disabled, actionLayout || \"vertical\");\n const [focused, setFocused] = useState(autofocus);\n const [value, setValue] = useState(modelValue || \"\");\n const [modelValueStringLength, setModelValueStringLength] = useState(0);\n const [showClear, setShowClear] = useState(false);\n const [showActionArea, setShowActionArea] = useState(false);\n const inputRef = useRef<TextInput>(null);\n const themeColor = useThemeColor();\n\n const limitValueLength = useCallback(\n (value: string) => {\n const valueLength = runes(value || \"\").length;\n if (typeof maxLength === \"number\" && valueLength > maxLength) {\n const mValue = value;\n if (mValue && modelValueStringLength === +maxLength) {\n return mValue;\n }\n return runes.substr(value, 0, +maxLength);\n }\n return value;\n },\n [maxLength],\n );\n\n useImperativeHandle(ref, () => ({\n textInputRef: inputRef,\n }));\n\n const updateValue = useCallback(\n (upValue: string) => {\n // let value = limitValueLength(upValue);\n onChange && onChange(upValue);\n setValue(upValue);\n },\n [onChange],\n );\n\n const handleChangeText = useCallback(\n (value: string) => {\n updateValue(value);\n // Only apply cursor fix on iOS when text equals maxLength (indicating truncation)\n if (Platform.OS === \"ios\" && maxLength && value.length >= maxLength && inputRef.current) {\n // Use requestAnimationFrame instead of setTimeout\n requestAnimationFrame(() => {\n inputRef.current?.setNativeProps({\n selection: { start: maxLength, end: maxLength },\n });\n });\n }\n },\n [maxLength, updateValue],\n );\n\n const handleClear = useCallback(() => {\n setValue(\"\");\n updateValue(\"\");\n onClear && onClear(value);\n }, [onClear]);\n\n const handleFocus = useCallback(() => {\n if (readonly) {\n inputRef.current?.blur();\n }\n setFocused(true);\n onFocus && onFocus(value);\n }, [onFocus, readonly]);\n\n const handleBlur = useCallback(() => {\n setFocused(false);\n if (!readonly) {\n onBlur && onBlur(value);\n }\n }, [readonly, onBlur]);\n\n useEffect(() => {\n setValue(modelValue || \"\");\n }, [modelValue]);\n\n useEffect(() => {\n setShowClear(clearable && value.length > 0);\n }, [clearable, value]);\n\n useEffect(() => {\n setFocused(autofocus);\n }, [autofocus]);\n\n useEffect(() => {\n // setModelValueStringLength(runes(value).length);\n setModelValueStringLength(value.length);\n }, [value]);\n\n useEffect(() => {\n setShowActionArea(showClear || showCount);\n }, [showClear, showCount]);\n\n const textFieldColor = useMemo(() => {\n const ColorMap = {\n primary: themeColor.Primary2,\n normal: themeColor.Fill1,\n basic: themeColor.Bg,\n };\n return ColorMap[layout!];\n }, [layout]);\n\n const handleKeyPress = ({ nativeEvent }: any) => {\n if (nativeEvent.key === \"Enter\" && props.returnKeyType !== \"next\") {\n Keyboard.dismiss();\n }\n };\n\n return (\n <View testID=\"wrapper\" style={[styles.wrapper, { backgroundColor: textFieldColor }, containerStyle]}>\n <TextInput\n testID=\"text-input\"\n ref={inputRef}\n style={[styles.input, { minHeight: rows * 24, height: \"auto\" }, style]}\n value={value}\n onChangeText={handleChangeText}\n onFocus={handleFocus}\n onBlur={handleBlur}\n editable={!readonly && !disabled}\n keyboardType={type}\n placeholder={placeholder}\n multiline\n returnKeyType={props.returnKeyType as any}\n autoFocus={focused}\n maxLength={maxLength}\n onKeyPress={handleKeyPress}\n onSubmitEditing={props.onSubmitEditing}\n selectionColor={styles.inputSelectionColor.color}\n placeholderTextColor={(placeholderTextColor || styles.inputPlaceHolder.color) as ColorValue}\n />\n {showActionArea && (\n <View style={[styles.ButtomActionArea]} testID=\"action-area\">\n {showCount && maxLength && (\n <View style={styles.rightItem}>\n <Text style={styles.count}>{`${Math.min(modelValueStringLength, maxLength)}/${maxLength}`}</Text>\n </View>\n )}\n {showClear && modelValueStringLength && focused && (\n <View style={styles.rightItem}>\n <TouchableWithoutFeedback onPress={handleClear}>\n <View style={styles.clearIconContainer}>\n <Text style={styles.clearIcon}>清空</Text>\n </View>\n </TouchableWithoutFeedback>\n </View>\n )}\n </View>\n )}\n </View>\n );\n});\n\n// @ts-ignore\nTextField.defaultProps = TextViewDefaultProps;\n\nexport default TextField;\n"],"names":["TextField","forwardRef","props","ref","_ref","type","modelValue","_ref$clearable","clearable","maxLength","_ref$disabled","disabled","readonly","_ref$autofocus","autofocus","_ref$showCount","showCount","placeholder","_ref$rows","rows","onFocus","onBlur","onChange","onClear","_ref$style","style","_ref$containerStyle","containerStyle","layout","actionLayout","placeholderTextColor","useMounted","styles","createStyles","_useState","useState","_useState2","_slicedToArray","focused","setFocused","_useState3","_useState4","value","setValue","_useState5","_useState6","modelValueStringLength","setModelValueStringLength","_useState7","_useState8","showClear","setShowClear","_useState9","_useState0","showActionArea","setShowActionArea","inputRef","useRef","themeColor","useThemeColor","useCallback","valueLength","runes","length","mValue","substr","useImperativeHandle","textInputRef","updateValue","upValue","handleChangeText","Platform","OS","current","requestAnimationFrame","_inputRef$current","setNativeProps","selection","start","end","handleClear","handleFocus","_inputRef$current2","blur","handleBlur","useEffect","textFieldColor","useMemo","ColorMap","primary","Primary2","normal","Fill1","basic","Bg","handleKeyPress","_ref2","nativeEvent","key","returnKeyType","Keyboard","dismiss","React","createElement","View","testID","wrapper","backgroundColor","TextInput","input","minHeight","height","onChangeText","editable","keyboardType","multiline","autoFocus","onKeyPress","onSubmitEditing","selectionColor","inputSelectionColor","color","inputPlaceHolder","ButtomActionArea","rightItem","Text","count","concat","Math","min","TouchableWithoutFeedback","onPress","clearIconContainer","clearIcon","defaultProps","TextViewDefaultProps"],"mappings":"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"}
|
|
@@ -19,25 +19,21 @@ var Wheel = function Wheel(props) {
|
|
|
19
19
|
accessibility = _props$accessibility === void 0 ? {} : _props$accessibility;
|
|
20
20
|
var scrollerRef = useRef();
|
|
21
21
|
var themeColor = useThemeColor();
|
|
22
|
-
var _useState = useState(
|
|
22
|
+
var _useState = useState(),
|
|
23
23
|
_useState2 = _slicedToArray(_useState, 2),
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
index = _useState2[0],
|
|
25
|
+
setIndex = _useState2[1];
|
|
26
26
|
useEffect(function () {
|
|
27
|
-
|
|
28
|
-
var idx = getSelectIndex(column, value);
|
|
29
|
-
handleScroll(idx);
|
|
30
|
-
}
|
|
27
|
+
value && setIndex(getSelectIndex(column, value));
|
|
31
28
|
}, [column, value]);
|
|
32
|
-
|
|
33
|
-
var _column$
|
|
34
|
-
var newVal = column === null || column === void 0 || (_column$
|
|
35
|
-
scrollTo(
|
|
29
|
+
useEffect(function () {
|
|
30
|
+
var _column$index;
|
|
31
|
+
var newVal = column === null || column === void 0 || (_column$index = column[index]) === null || _column$index === void 0 ? void 0 : _column$index.value;
|
|
32
|
+
scrollTo(index * itemHeight);
|
|
36
33
|
if (newVal) {
|
|
37
|
-
setLastValue(newVal);
|
|
38
34
|
onSelect(newVal, props.index);
|
|
39
35
|
}
|
|
40
|
-
};
|
|
36
|
+
}, [index, props.index]);
|
|
41
37
|
var scrollTo = function scrollTo(y) {
|
|
42
38
|
setTimeout(function () {
|
|
43
39
|
var _scrollerRef$current, _scrollerRef$current$;
|
|
@@ -57,22 +53,20 @@ var Wheel = function Wheel(props) {
|
|
|
57
53
|
}), 0) : 0;
|
|
58
54
|
};
|
|
59
55
|
var onMomentumScrollEnd = function onMomentumScrollEnd(e) {
|
|
60
|
-
var _e$persist
|
|
56
|
+
var _e$persist;
|
|
61
57
|
(_e$persist = e.persist) === null || _e$persist === void 0 || _e$persist.call(e);
|
|
62
58
|
var contentOffset = e.nativeEvent.contentOffset;
|
|
63
59
|
var selectIndex = Math.round(contentOffset.y / itemHeight);
|
|
64
|
-
|
|
65
|
-
setLastValue(newVal);
|
|
66
|
-
onSelect(newVal, props.index);
|
|
60
|
+
setIndex(selectIndex);
|
|
67
61
|
};
|
|
68
|
-
var handleClick = function handleClick(
|
|
69
|
-
|
|
62
|
+
var handleClick = function handleClick(index2) {
|
|
63
|
+
setIndex(index2);
|
|
70
64
|
};
|
|
71
65
|
var renderItems = function renderItems() {
|
|
72
|
-
return column.map(function (item,
|
|
66
|
+
return column.map(function (item, index2) {
|
|
73
67
|
return /* @__PURE__ */React.createElement(TouchableNativeFeedback, {
|
|
74
68
|
onPress: function onPress() {
|
|
75
|
-
return handleClick(
|
|
69
|
+
return handleClick(index2);
|
|
76
70
|
},
|
|
77
71
|
key: item.value
|
|
78
72
|
}, /* @__PURE__ */React.createElement(View, _objectSpread2({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wheel.js","sources":["../../../../src/components/PickerView/Wheel.tsx"],"sourcesContent":["import React, { useRef, useState, useEffect } from \"react\";\nimport { NativeScrollEvent, NativeSyntheticEvent, ScrollView, View, Text, TouchableNativeFeedback } from \"react-native\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport { typography } from \"@xhsreds/reds-token-next\";\nimport { RedsWheel, Column } from \"./interface/index\";\nimport styles from \"./styles\";\n\nconst itemHeight = 40;\n\nconst Wheel = (props: RedsWheel) => {\n const { value, column = [], onSelect = () => {}, accessibility = {} } = props;\n\n /**\n * 滚动ref\n */\n const scrollerRef = useRef();\n\n /**\n * themeColor\n */\n const themeColor = useThemeColor();\n\n const [
|
|
1
|
+
{"version":3,"file":"Wheel.js","sources":["../../../../src/components/PickerView/Wheel.tsx"],"sourcesContent":["import React, { useRef, useState, useEffect } from \"react\";\nimport { NativeScrollEvent, NativeSyntheticEvent, ScrollView, View, Text, TouchableNativeFeedback } from \"react-native\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport { typography } from \"@xhsreds/reds-token-next\";\nimport { RedsWheel, Column } from \"./interface/index\";\nimport styles from \"./styles\";\n\nconst itemHeight = 40;\n\nconst Wheel = (props: RedsWheel) => {\n const { value, column = [], onSelect = () => {}, accessibility = {} } = props;\n\n /**\n * 滚动ref\n */\n const scrollerRef = useRef();\n\n /**\n * themeColor\n */\n const themeColor = useThemeColor();\n\n /**\n * index\n */\n const [index, setIndex] = useState<any>();\n\n /**\n * 初始化滚动高度\n */\n useEffect(() => {\n value && setIndex(getSelectIndex(column, value));\n }, [column, value]);\n\n useEffect(() => {\n const newVal = column?.[index]?.value;\n scrollTo(index * itemHeight);\n if (newVal) {\n onSelect(newVal, props.index);\n }\n }, [index, props.index]);\n\n /**\n * 滚动ScrollView\n * @param y 滚动距离\n */\n const scrollTo = (y: any) => {\n setTimeout(() => {\n // @ts-ignore\n scrollerRef?.current?.scrollTo?.({\n y,\n animated: true,\n });\n });\n };\n\n /**\n * 计算当前滚动高度\n * @param column 数组\n * @param value 选中值\n * @returns\n */\n const getSelectIndex = (column: Column[], value?: string) => {\n return value\n ? Math.max(\n column.findIndex((item) => {\n if (isNaN(parseInt(item.value)) || isNaN(parseInt(value))) {\n return value && item.value === value;\n } else {\n return value && parseInt(item.value) === parseInt(value);\n }\n }),\n 0,\n )\n : 0;\n };\n\n /**\n * 结束滚动\n * @param e\n */\n const onMomentumScrollEnd = (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n e.persist?.();\n let contentOffset = e.nativeEvent.contentOffset;\n const selectIndex = Math.round(contentOffset.y / itemHeight);\n setIndex(selectIndex);\n };\n\n const handleClick = (index: number) => {\n setIndex(index);\n };\n\n /**\n * 渲染item\n * @returns ReactNode\n */\n const renderItems = () => {\n return column.map((item, index) => (\n <TouchableNativeFeedback onPress={() => handleClick(index)} key={item.value}>\n <View\n style={[styles.wheel, { height: itemHeight, backgroundColor: themeColor.Bg2 }]}\n key={item.value}\n {...item.accessibility}\n >\n <Text {...item.accessibility} style={{ color: themeColor.Title, fontSize: typography.B1FontSize }}>\n {item.label}\n </Text>\n </View>\n </TouchableNativeFeedback>\n ));\n };\n\n return (\n <ScrollView\n style={{ flex: 1 }}\n nestedScrollEnabled\n horizontal={false}\n ref={(el: any) => (scrollerRef.current = el)}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n pagingEnabled={false}\n automaticallyAdjustContentInsets={false}\n directionalLockEnabled={true}\n decelerationRate=\"fast\"\n snapToInterval={itemHeight}\n onMomentumScrollEnd={onMomentumScrollEnd}\n testID={`wheel${props.index}`}\n {...accessibility}\n >\n <View style={{ height: 2 * itemHeight, backgroundColor: themeColor.Bg2 }} />\n {renderItems()}\n <View style={{ height: 2 * itemHeight, backgroundColor: themeColor.Bg2 }} />\n </ScrollView>\n );\n};\n\nexport default Wheel;\n"],"names":["itemHeight","Wheel","props","value","_props$column","column","_props$onSelect","onSelect","_props$accessibility","accessibility","scrollerRef","useRef","themeColor","useThemeColor","_useState","useState","_useState2","_slicedToArray","index","setIndex","useEffect","getSelectIndex","_column$index","newVal","scrollTo","y","setTimeout","_scrollerRef$current","_scrollerRef$current$","current","call","animated","Math","max","findIndex","item","isNaN","parseInt","onMomentumScrollEnd","e","_e$persist","persist","contentOffset","nativeEvent","selectIndex","round","handleClick","renderItems","map","React","createElement","TouchableNativeFeedback","onPress","key","View","_objectSpread","style","styles","wheel","height","backgroundColor","Bg2","Text","color","Title","fontSize","typography","B1FontSize","label","ScrollView","flex","nestedScrollEnabled","horizontal","ref","el","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","pagingEnabled","automaticallyAdjustContentInsets","directionalLockEnabled","decelerationRate","snapToInterval","testID","concat"],"mappings":"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"}
|
|
@@ -288,11 +288,10 @@ function PullRefresh(props) {
|
|
|
288
288
|
};
|
|
289
289
|
var scrollContent = useMemo(function () {
|
|
290
290
|
return React.Children.map(props.children, function (child) {
|
|
291
|
-
var _props$androidRefresh, _props$androidRefresh2;
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
}, Platform.OS === "android" && props.nativeAndroidPullRefresh ? {
|
|
291
|
+
var _originalOnScroll$_an, _props$androidRefresh, _props$androidRefresh2;
|
|
292
|
+
var originalOnScroll = child.props.onScroll;
|
|
293
|
+
var hasNativeDriver = originalOnScroll && (originalOnScroll["__isNative"] === true || (originalOnScroll === null || originalOnScroll === void 0 || (_originalOnScroll$_an = originalOnScroll._animation) === null || _originalOnScroll$_an === void 0 ? void 0 : _originalOnScroll$_an.useNativeDriver) === true);
|
|
294
|
+
var injectedProps = Platform.OS === "android" && props.nativeAndroidPullRefresh ? {
|
|
296
295
|
refreshControl: /* @__PURE__ */React.createElement(RefreshControl, _objectSpread2(_objectSpread2({}, props.androidRefreshProps || {}), {}, {
|
|
297
296
|
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
297
|
refreshing: !!props.isRefreshing || internalRefreshing,
|
|
@@ -313,10 +312,38 @@ function PullRefresh(props) {
|
|
|
313
312
|
}
|
|
314
313
|
})),
|
|
315
314
|
onScroll: function onScroll(evt) {
|
|
316
|
-
if (
|
|
317
|
-
|
|
315
|
+
if (originalOnScroll && typeof originalOnScroll === "function") {
|
|
316
|
+
originalOnScroll(evt);
|
|
318
317
|
}
|
|
319
318
|
}
|
|
319
|
+
} : hasNativeDriver ? {
|
|
320
|
+
// When the child uses native-driver Animated.event, keep it intact to avoid crashes
|
|
321
|
+
onScroll: originalOnScroll,
|
|
322
|
+
onMomentumScrollEnd: function onMomentumScrollEnd(evt) {
|
|
323
|
+
setScrollY(evt.nativeEvent.contentOffset.y);
|
|
324
|
+
child.props.onMomentumScrollEnd && child.props.onMomentumScrollEnd(evt);
|
|
325
|
+
},
|
|
326
|
+
onScrollEndDrag: function onScrollEndDrag(evt) {
|
|
327
|
+
setScrollY(evt.nativeEvent.contentOffset.y);
|
|
328
|
+
if (pullState === PullState.LOADING && evt.nativeEvent.contentOffset.y > 0) {
|
|
329
|
+
var y = Math.max(0, pullAnimHeight - evt.nativeEvent.contentOffset.y);
|
|
330
|
+
viewRef.current && viewRef.current.setNativeProps({
|
|
331
|
+
style: {
|
|
332
|
+
transform: [{
|
|
333
|
+
translateY: y
|
|
334
|
+
}]
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
animatedViewRef.current && animatedViewRef.current.setNativeProps({
|
|
338
|
+
style: {
|
|
339
|
+
transform: [{
|
|
340
|
+
translateY: y
|
|
341
|
+
}]
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
child.props.onScrollEndDrag && child.props.onScrollEndDrag(evt);
|
|
346
|
+
}
|
|
320
347
|
} : {
|
|
321
348
|
onScroll: function onScroll(evt) {
|
|
322
349
|
setScrollY(evt.nativeEvent.contentOffset.y);
|
|
@@ -337,11 +364,14 @@ function PullRefresh(props) {
|
|
|
337
364
|
}
|
|
338
365
|
});
|
|
339
366
|
}
|
|
340
|
-
if (
|
|
341
|
-
|
|
367
|
+
if (originalOnScroll && typeof originalOnScroll === "function") {
|
|
368
|
+
originalOnScroll(evt);
|
|
342
369
|
}
|
|
343
370
|
}
|
|
344
|
-
}
|
|
371
|
+
};
|
|
372
|
+
return /*#__PURE__*/React.cloneElement(child, _objectSpread2({
|
|
373
|
+
scrollEventThrottle: 1
|
|
374
|
+
}, injectedProps));
|
|
345
375
|
});
|
|
346
376
|
}, [pullState, props.children, pullAnimHeight, internalRefreshing, props.isRefreshing, props.nativeAndroidPullRefresh]);
|
|
347
377
|
var content = useMemo(function () {
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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 const originalOnScroll = child.props.onScroll;\n const hasNativeDriver =\n originalOnScroll &&\n (originalOnScroll[\"__isNative\"] === true || (originalOnScroll as any)?._animation?.useNativeDriver === true);\n\n const injectedProps =\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 (originalOnScroll && typeof originalOnScroll === \"function\") {\n originalOnScroll(evt);\n }\n },\n }\n : hasNativeDriver\n ? {\n // When the child uses native-driver Animated.event, keep it intact to avoid crashes\n onScroll: originalOnScroll,\n onMomentumScrollEnd: (evt: any) => {\n setScrollY(evt.nativeEvent.contentOffset.y);\n child.props.onMomentumScrollEnd && child.props.onMomentumScrollEnd(evt);\n },\n onScrollEndDrag: (evt: any) => {\n setScrollY(evt.nativeEvent.contentOffset.y);\n // Keep header position in loading state\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 child.props.onScrollEndDrag && child.props.onScrollEndDrag(evt);\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 (originalOnScroll && typeof originalOnScroll === \"function\") {\n originalOnScroll(evt);\n }\n },\n };\n\n return React.cloneElement(child, {\n scrollEventThrottle: 1,\n ...injectedProps,\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","_originalOnScroll$_an","_props$androidRefresh","_props$androidRefresh2","originalOnScroll","onScroll","hasNativeDriver","_animation","injectedProps","refreshControl","createElement","RNRefreshControl","_objectSpread","androidRefreshProps","colors","androidColors","refreshing","onRefresh","_props$msHoldingTime3","onMomentumScrollEnd","contentOffset","y","onScrollEndDrag","setNativeProps","style","transform","translateY","cloneElement","scrollEventThrottle","content","View","ref","flex","styles","container","panHandlers","testID","freshItem","controlStyle","defaultProps","PullRefreshDefaultProps","StyleSheet","overflow","position","width","justifyContent","alignItems","zIndex"],"mappings":"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"}
|
|
@@ -300,9 +300,9 @@ var Radio = function Radio(props) {
|
|
|
300
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);
|
|
301
301
|
var labelStyle = getLabelStyle(disabled || (parent === null || parent === void 0 ? void 0 : parent.disabled), size, parent === null || parent === void 0 ? void 0 : parent.direction);
|
|
302
302
|
var iconSizeMap = {
|
|
303
|
-
small:
|
|
304
|
-
medium:
|
|
305
|
-
large:
|
|
303
|
+
small: 16,
|
|
304
|
+
medium: 20,
|
|
305
|
+
large: 24
|
|
306
306
|
};
|
|
307
307
|
var rightStyle = getRightIconStyle(size);
|
|
308
308
|
var rightWrapperStyle = getRightWrapperStyle(size, themeColor, props.themeColor);
|