@xhsreds/reds-rn-next 0.10.1-beta202511201716 → 0.10.1-beta202511211532

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 (57) 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-2.json +1 -1
  12. package/coverage/.tmp/coverage-20.json +1 -1
  13. package/coverage/.tmp/coverage-21.json +1 -1
  14. package/coverage/.tmp/coverage-22.json +1 -1
  15. package/coverage/.tmp/coverage-23.json +1 -1
  16. package/coverage/.tmp/coverage-25.json +1 -1
  17. package/coverage/.tmp/coverage-26.json +1 -1
  18. package/coverage/.tmp/coverage-27.json +1 -1
  19. package/coverage/.tmp/coverage-28.json +1 -1
  20. package/coverage/.tmp/coverage-29.json +1 -1
  21. package/coverage/.tmp/coverage-3.json +1 -1
  22. package/coverage/.tmp/coverage-30.json +1 -1
  23. package/coverage/.tmp/coverage-31.json +1 -1
  24. package/coverage/.tmp/coverage-32.json +1 -1
  25. package/coverage/.tmp/coverage-33.json +1 -1
  26. package/coverage/.tmp/coverage-34.json +1 -1
  27. package/coverage/.tmp/coverage-35.json +1 -1
  28. package/coverage/.tmp/coverage-36.json +1 -1
  29. package/coverage/.tmp/coverage-37.json +1 -1
  30. package/coverage/.tmp/coverage-38.json +1 -1
  31. package/coverage/.tmp/coverage-39.json +1 -1
  32. package/coverage/.tmp/coverage-4.json +1 -1
  33. package/coverage/.tmp/coverage-40.json +1 -1
  34. package/coverage/.tmp/coverage-41.json +1 -1
  35. package/coverage/.tmp/coverage-42.json +1 -1
  36. package/coverage/.tmp/coverage-43.json +1 -1
  37. package/coverage/.tmp/coverage-5.json +1 -1
  38. package/coverage/.tmp/coverage-6.json +1 -1
  39. package/coverage/.tmp/coverage-7.json +1 -1
  40. package/coverage/.tmp/coverage-8.json +1 -1
  41. package/coverage/.tmp/coverage-9.json +1 -1
  42. package/lib/cjs/components/Avatar/styles.js +5 -5
  43. package/lib/cjs/components/Avatar/styles.js.map +1 -1
  44. package/lib/cjs/components/AvatarGroup/AvatarGroup.js +1 -1
  45. package/lib/cjs/components/PickerView/Wheel.js +21 -15
  46. package/lib/cjs/components/PickerView/Wheel.js.map +1 -1
  47. package/lib/esm/components/Avatar/styles.js +5 -5
  48. package/lib/esm/components/Avatar/styles.js.map +1 -1
  49. package/lib/esm/components/AvatarGroup/AvatarGroup.js +1 -1
  50. package/lib/esm/components/PickerView/Wheel.js +21 -15
  51. package/lib/esm/components/PickerView/Wheel.js.map +1 -1
  52. package/package.json +2 -2
  53. package/src/components/Avatar/styles.ts +5 -4
  54. package/src/components/DatePicker/demo/index.tsx +26 -0
  55. package/src/components/PickerView/Wheel.tsx +14 -11
  56. package/src/i18n/@types/resources.d.ts +18 -18
  57. package/src/i18n/index.json +31 -31
@@ -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 /**\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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"}
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 [lastValue, setLastValue] = useState(value);\n\n /**\n * 初始化滚动高度\n */\n useEffect(() => {\n if (value !== lastValue) {\n const idx = getSelectIndex(column, value);\n handleScroll(idx);\n }\n }, [column, value]);\n\n const handleScroll = (idx: number) => {\n const newVal = column?.[idx]?.value;\n scrollTo(idx * itemHeight);\n if (newVal) {\n setLastValue(newVal);\n onSelect(newVal, props.index);\n }\n };\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 const newVal = column?.[selectIndex]?.value;\n setLastValue(newVal);\n onSelect(newVal, props.index);\n };\n\n const handleClick = (index: number) => {\n handleScroll(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","lastValue","setLastValue","useEffect","idx","getSelectIndex","handleScroll","_column$idx","newVal","scrollTo","index","y","setTimeout","_scrollerRef$current","_scrollerRef$current$","current","call","animated","Math","max","findIndex","item","isNaN","parseInt","onMomentumScrollEnd","e","_e$persist","_column$selectIndex","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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"}
@@ -4,7 +4,7 @@ import '../ConfigProvider/hooks/ConfigCache/ConfigCache.js';
4
4
  import 'react';
5
5
  import '@xhs/reds-apm/src/index.native';
6
6
  import { useThemeColor, useThemeTypography } from '../ConfigProvider/hooks/themeToken/useThemeToken.js';
7
- import '@xhsreds/reds-token-next';
7
+ import { alwaysColor } from '@xhsreds/reds-token-next';
8
8
  import '../ConfigProvider/hooks/ConfigContext/ConfigContext.js';
9
9
 
10
10
  var avatarSizeToTagMargin = {
@@ -169,7 +169,7 @@ var getLiveTextStyles = function getLiveTextStyles(size, liveIcon) {
169
169
  liveTextSmall: {
170
170
  fontSize: 8,
171
171
  textAlign: "center",
172
- color: themeColor.White,
172
+ color: alwaysColor.White,
173
173
  display: "flex",
174
174
  justifyContent: "center",
175
175
  alignItems: "center"
@@ -177,18 +177,18 @@ var getLiveTextStyles = function getLiveTextStyles(size, liveIcon) {
177
177
  liveTextMedium: {
178
178
  fontSize: 8,
179
179
  textAlign: "center",
180
- color: themeColor.White
180
+ color: alwaysColor.White
181
181
  },
182
182
  liveTextLarge: {
183
183
  fontSize: typography.C3FontSize,
184
184
  fontWeight: typography.C3FontWeight,
185
185
  textAlign: "center",
186
- color: themeColor.White
186
+ color: alwaysColor.White
187
187
  },
188
188
  liveTextXLarge: {
189
189
  fontSize: typography.C2FontSize,
190
190
  textAlign: "center",
191
- color: themeColor.White
191
+ color: alwaysColor.White
192
192
  }
193
193
  });
194
194
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../../../src/components/Avatar/styles.ts"],"sourcesContent":["import { StyleSheet, Platform } from \"react-native\";\nimport { useThemeTypography, useThemeColor } from \"../ConfigProvider\";\n\nconst avatarSizeToTagMargin = {\n small: -4,\n medium: -6,\n large: -8,\n xlarge: -10,\n};\n\nconst sizeRanges = [{ \"16-28\": \"small\" }, { \"28-44\": \"medium\" }, { \"48-64\": \"large\" }, { \"68-80\": \"xlarge\" }];\n\ntype AvatarSize = \"small\" | \"medium\" | \"large\" | \"xlarge\";\n\nconst getSizeType = (value: number) => {\n const res = sizeRanges.filter((obj) => {\n const [min, max] = Object.keys(obj)[0].split(\"-\");\n return value >= +min && value <= +max;\n });\n return res && res.length > 0 ? Object.values(res[0])[0] : \"large\";\n};\n\nexport const getAvatarStyles = (width: number, size: number | AvatarSize, outlineColor: string, borderNum?: number) => {\n let sizeType = typeof size === \"number\" ? (getSizeType(width) as AvatarSize) : (size as AvatarSize);\n const themeColor = useThemeColor(\"Avatar\");\n let borderWidth =\n typeof borderNum === \"number\" ? borderNum : sizeType === \"xlarge\" ? 2 : sizeType === \"large\" ? 1.5 : 1;\n\n const styles = StyleSheet.create({\n container: {\n borderWidth: 0,\n width: width + borderWidth * 4,\n height: width + borderWidth * 4,\n borderRadius: (width + 100) / 2,\n position: \"absolute\",\n },\n img: {\n width: width,\n height: width,\n borderRadius: width / 2,\n zIndex: 100,\n },\n outContainer: {\n width: width,\n height: width,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n });\n\n const liveStyles = StyleSheet.create({\n container: {\n // @ts-ignore\n borderColor: themeColor[outlineColor] || outlineColor,\n borderWidth,\n },\n });\n const liveStylesSecondary = StyleSheet.create({\n container: {\n // @ts-ignore\n borderColor: themeColor[outlineColor] || outlineColor,\n borderWidth: borderWidth,\n },\n });\n\n return {\n styles,\n liveStyles,\n liveStylesSecondary,\n sizeType,\n borderWidth,\n };\n};\n\nexport const getLiveTextStyles = (size: AvatarSize, liveIcon: any) => {\n const typography = useThemeTypography(\"Avatar\");\n const themeColor = useThemeColor(\"Avatar\");\n const tagMargin = avatarSizeToTagMargin[size];\n const tagContainerStyles = StyleSheet.create({\n outContainer: {\n position: \"absolute\",\n bottom: tagMargin,\n zIndex: 100,\n },\n container: {\n position: \"relative\",\n overflow: \"hidden\",\n width: \"100%\",\n borderRadius: 60,\n },\n animatedLight: {\n height: 30,\n bottom: 0,\n position: \"absolute\",\n width: 6,\n },\n });\n const tagStyles = StyleSheet.create({\n text: {\n fontSize: 7,\n lineHeight: 10,\n paddingHorizontal: 0,\n },\n container: {\n width: \"auto\",\n paddingHorizontal: 3,\n overflow: \"hidden\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n avatarLiveTag: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: themeColor.Primary,\n borderRadius: 99,\n opacity: 1,\n zIndex: 999,\n },\n liveSmall: {\n fontSize: 8,\n minWidth: liveIcon ? 32 : 24,\n paddingVertical: 2,\n // height: 12,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n paddingHorizontal: liveIcon ? 4 : 0,\n },\n liveMedium: {\n fontSize: 8,\n minWidth: liveIcon ? 34 : 26,\n paddingVertical: 2,\n // height: 12,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n liveLarge: {\n fontSize: typography.C3FontSize,\n minWidth: liveIcon ? 44 : 34,\n paddingVertical: 2,\n // height: 16,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n fontWeight: typography.C3FontWeight,\n },\n liveXLarge: {\n fontSize: typography.C2FontSize,\n minWidth: liveIcon ? 56 : 42,\n paddingVertical: 2,\n // height: 20,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n liveTextSmall: {\n fontSize: 8,\n textAlign: \"center\",\n color: themeColor.White,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n liveTextMedium: {\n fontSize: 8,\n textAlign: \"center\",\n color: themeColor.White,\n },\n liveTextLarge: {\n fontSize: typography.C3FontSize,\n fontWeight: typography.C3FontWeight,\n textAlign: \"center\",\n color: themeColor.White,\n },\n liveTextXLarge: {\n fontSize: typography.C2FontSize,\n textAlign: \"center\",\n color: themeColor.White,\n },\n });\n\n return {\n tagMargin,\n tagContainerStyles,\n tagStyles,\n };\n};\n"],"names":["avatarSizeToTagMargin","small","medium","large","xlarge","sizeRanges","getSizeType","value","res","filter","obj","_Object$keys$0$split","Object","keys","split","_Object$keys$0$split2","_slicedToArray","min","max","length","values","getAvatarStyles","width","size","outlineColor","borderNum","sizeType","themeColor","useThemeColor","borderWidth","styles","StyleSheet","create","container","height","borderRadius","position","img","zIndex","outContainer","display","alignItems","justifyContent","liveStyles","borderColor","liveStylesSecondary","getLiveTextStyles","liveIcon","typography","useThemeTypography","tagMargin","tagContainerStyles","bottom","overflow","animatedLight","tagStyles","text","fontSize","lineHeight","paddingHorizontal","flexDirection","avatarLiveTag","backgroundColor","Primary","opacity","liveSmall","minWidth","paddingVertical","liveMedium","liveLarge","C3FontSize","fontWeight","C3FontWeight","liveXLarge","C2FontSize","liveTextSmall","textAlign","color","White","liveTextMedium","liveTextLarge","liveTextXLarge"],"mappings":"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"}
1
+ {"version":3,"file":"styles.js","sources":["../../../../src/components/Avatar/styles.ts"],"sourcesContent":["import { StyleSheet, Platform } from \"react-native\";\nimport { useThemeTypography, useThemeColor } from \"../ConfigProvider\";\nimport { alwaysColor } from \"@xhsreds/reds-token-next\";\n\nconst avatarSizeToTagMargin = {\n small: -4,\n medium: -6,\n large: -8,\n xlarge: -10,\n};\n\nconst sizeRanges = [{ \"16-28\": \"small\" }, { \"28-44\": \"medium\" }, { \"48-64\": \"large\" }, { \"68-80\": \"xlarge\" }];\n\ntype AvatarSize = \"small\" | \"medium\" | \"large\" | \"xlarge\";\n\nconst getSizeType = (value: number) => {\n const res = sizeRanges.filter((obj) => {\n const [min, max] = Object.keys(obj)[0].split(\"-\");\n return value >= +min && value <= +max;\n });\n return res && res.length > 0 ? Object.values(res[0])[0] : \"large\";\n};\n\nexport const getAvatarStyles = (width: number, size: number | AvatarSize, outlineColor: string, borderNum?: number) => {\n let sizeType = typeof size === \"number\" ? (getSizeType(width) as AvatarSize) : (size as AvatarSize);\n const themeColor = useThemeColor(\"Avatar\");\n let borderWidth =\n typeof borderNum === \"number\" ? borderNum : sizeType === \"xlarge\" ? 2 : sizeType === \"large\" ? 1.5 : 1;\n\n const styles = StyleSheet.create({\n container: {\n borderWidth: 0,\n width: width + borderWidth * 4,\n height: width + borderWidth * 4,\n borderRadius: (width + 100) / 2,\n position: \"absolute\",\n },\n img: {\n width: width,\n height: width,\n borderRadius: width / 2,\n zIndex: 100,\n },\n outContainer: {\n width: width,\n height: width,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n });\n\n const liveStyles = StyleSheet.create({\n container: {\n // @ts-ignore\n borderColor: themeColor[outlineColor] || outlineColor,\n borderWidth,\n },\n });\n const liveStylesSecondary = StyleSheet.create({\n container: {\n // @ts-ignore\n borderColor: themeColor[outlineColor] || outlineColor,\n borderWidth: borderWidth,\n },\n });\n\n return {\n styles,\n liveStyles,\n liveStylesSecondary,\n sizeType,\n borderWidth,\n };\n};\n\nexport const getLiveTextStyles = (size: AvatarSize, liveIcon: any) => {\n const typography = useThemeTypography(\"Avatar\");\n const themeColor = useThemeColor(\"Avatar\");\n const tagMargin = avatarSizeToTagMargin[size];\n const tagContainerStyles = StyleSheet.create({\n outContainer: {\n position: \"absolute\",\n bottom: tagMargin,\n zIndex: 100,\n },\n container: {\n position: \"relative\",\n overflow: \"hidden\",\n width: \"100%\",\n borderRadius: 60,\n },\n animatedLight: {\n height: 30,\n bottom: 0,\n position: \"absolute\",\n width: 6,\n },\n });\n const tagStyles = StyleSheet.create({\n text: {\n fontSize: 7,\n lineHeight: 10,\n paddingHorizontal: 0,\n },\n container: {\n width: \"auto\",\n paddingHorizontal: 3,\n overflow: \"hidden\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n avatarLiveTag: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: themeColor.Primary,\n borderRadius: 99,\n opacity: 1,\n zIndex: 999,\n },\n liveSmall: {\n fontSize: 8,\n minWidth: liveIcon ? 32 : 24,\n paddingVertical: 2,\n // height: 12,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n paddingHorizontal: liveIcon ? 4 : 0,\n },\n liveMedium: {\n fontSize: 8,\n minWidth: liveIcon ? 34 : 26,\n paddingVertical: 2,\n // height: 12,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n liveLarge: {\n fontSize: typography.C3FontSize,\n minWidth: liveIcon ? 44 : 34,\n paddingVertical: 2,\n // height: 16,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n fontWeight: typography.C3FontWeight,\n },\n liveXLarge: {\n fontSize: typography.C2FontSize,\n minWidth: liveIcon ? 56 : 42,\n paddingVertical: 2,\n // height: 20,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n liveTextSmall: {\n fontSize: 8,\n textAlign: \"center\",\n color: alwaysColor.White,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n liveTextMedium: {\n fontSize: 8,\n textAlign: \"center\",\n color: alwaysColor.White,\n },\n liveTextLarge: {\n fontSize: typography.C3FontSize,\n fontWeight: typography.C3FontWeight,\n textAlign: \"center\",\n color: alwaysColor.White,\n },\n liveTextXLarge: {\n fontSize: typography.C2FontSize,\n textAlign: \"center\",\n color: alwaysColor.White,\n },\n });\n\n return {\n tagMargin,\n tagContainerStyles,\n tagStyles,\n };\n};\n"],"names":["avatarSizeToTagMargin","small","medium","large","xlarge","sizeRanges","getSizeType","value","res","filter","obj","_Object$keys$0$split","Object","keys","split","_Object$keys$0$split2","_slicedToArray","min","max","length","values","getAvatarStyles","width","size","outlineColor","borderNum","sizeType","themeColor","useThemeColor","borderWidth","styles","StyleSheet","create","container","height","borderRadius","position","img","zIndex","outContainer","display","alignItems","justifyContent","liveStyles","borderColor","liveStylesSecondary","getLiveTextStyles","liveIcon","typography","useThemeTypography","tagMargin","tagContainerStyles","bottom","overflow","animatedLight","tagStyles","text","fontSize","lineHeight","paddingHorizontal","flexDirection","avatarLiveTag","backgroundColor","Primary","opacity","liveSmall","minWidth","paddingVertical","liveMedium","liveLarge","C3FontSize","fontWeight","C3FontWeight","liveXLarge","C2FontSize","liveTextSmall","textAlign","color","alwaysColor","White","liveTextMedium","liveTextLarge","liveTextXLarge"],"mappings":"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"}
@@ -9,13 +9,13 @@ import { useThemeColor } from '../ConfigProvider/hooks/themeToken/useThemeToken.
9
9
  import '../../_chunks/DjMhUq01.js';
10
10
  import '../Avatar/styles.js';
11
11
  import '@xhs/reds-apm/src/index.native';
12
+ import '@xhsreds/reds-token-next';
12
13
  import '../LanguageProvider/LanguageProvider.js';
13
14
  import '../../_chunks/xB1yvFw8.js';
14
15
  import '../LanguageProvider/hooks/LanguageContext.js';
15
16
  import '../../pvCount/pvData.js';
16
17
  import '../LanguageProvider/hooks/useLanguage.js';
17
18
  import '../../i18n/index.js';
18
- import '@xhsreds/reds-token-next';
19
19
  import '../ConfigProvider/hooks/ConfigContext/ConfigContext.js';
20
20
 
21
21
  var AvatarGroup = function AvatarGroup(props) {
@@ -19,21 +19,25 @@ 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(value),
23
23
  _useState2 = _slicedToArray(_useState, 2),
24
- index = _useState2[0],
25
- setIndex = _useState2[1];
24
+ lastValue = _useState2[0],
25
+ setLastValue = _useState2[1];
26
26
  useEffect(function () {
27
- value && setIndex(getSelectIndex(column, value));
27
+ if (value !== lastValue) {
28
+ var idx = getSelectIndex(column, value);
29
+ handleScroll(idx);
30
+ }
28
31
  }, [column, value]);
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);
32
+ var handleScroll = function handleScroll(idx) {
33
+ var _column$idx;
34
+ var newVal = column === null || column === void 0 || (_column$idx = column[idx]) === null || _column$idx === void 0 ? void 0 : _column$idx.value;
35
+ scrollTo(idx * itemHeight);
33
36
  if (newVal) {
37
+ setLastValue(newVal);
34
38
  onSelect(newVal, props.index);
35
39
  }
36
- }, [index, props.index]);
40
+ };
37
41
  var scrollTo = function scrollTo(y) {
38
42
  setTimeout(function () {
39
43
  var _scrollerRef$current, _scrollerRef$current$;
@@ -53,20 +57,22 @@ var Wheel = function Wheel(props) {
53
57
  }), 0) : 0;
54
58
  };
55
59
  var onMomentumScrollEnd = function onMomentumScrollEnd(e) {
56
- var _e$persist;
60
+ var _e$persist, _column$selectIndex;
57
61
  (_e$persist = e.persist) === null || _e$persist === void 0 || _e$persist.call(e);
58
62
  var contentOffset = e.nativeEvent.contentOffset;
59
63
  var selectIndex = Math.round(contentOffset.y / itemHeight);
60
- setIndex(selectIndex);
64
+ var newVal = column === null || column === void 0 || (_column$selectIndex = column[selectIndex]) === null || _column$selectIndex === void 0 ? void 0 : _column$selectIndex.value;
65
+ setLastValue(newVal);
66
+ onSelect(newVal, props.index);
61
67
  };
62
- var handleClick = function handleClick(index2) {
63
- setIndex(index2);
68
+ var handleClick = function handleClick(index) {
69
+ handleScroll(index);
64
70
  };
65
71
  var renderItems = function renderItems() {
66
- return column.map(function (item, index2) {
72
+ return column.map(function (item, index) {
67
73
  return /* @__PURE__ */React.createElement(TouchableNativeFeedback, {
68
74
  onPress: function onPress() {
69
- return handleClick(index2);
75
+ return handleClick(index);
70
76
  },
71
77
  key: item.value
72
78
  }, /* @__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 /**\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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"}
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 [lastValue, setLastValue] = useState(value);\n\n /**\n * 初始化滚动高度\n */\n useEffect(() => {\n if (value !== lastValue) {\n const idx = getSelectIndex(column, value);\n handleScroll(idx);\n }\n }, [column, value]);\n\n const handleScroll = (idx: number) => {\n const newVal = column?.[idx]?.value;\n scrollTo(idx * itemHeight);\n if (newVal) {\n setLastValue(newVal);\n onSelect(newVal, props.index);\n }\n };\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 const newVal = column?.[selectIndex]?.value;\n setLastValue(newVal);\n onSelect(newVal, props.index);\n };\n\n const handleClick = (index: number) => {\n handleScroll(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","lastValue","setLastValue","useEffect","idx","getSelectIndex","handleScroll","_column$idx","newVal","scrollTo","index","y","setTimeout","_scrollerRef$current","_scrollerRef$current$","current","call","animated","Math","max","findIndex","item","isNaN","parseInt","onMomentumScrollEnd","e","_e$persist","_column$selectIndex","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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xhsreds/reds-rn-next",
3
- "version": "0.10.1-beta202511201716",
3
+ "version": "0.10.1-beta202511211532",
4
4
  "author": "贾斌(呀哈) <jiabin@xiaohongshu.com>",
5
5
  "license": "ISC",
6
6
  "dependencies": {
@@ -26,7 +26,7 @@
26
26
  "react-native-fs": "2.20.0",
27
27
  "react-native-svg": "13.14.0",
28
28
  "@xhs/react-native-harmony": "*",
29
- "@xhsreds/reds-token-next": "0.10.1-beta202511201716"
29
+ "@xhsreds/reds-token-next": "0.10.1-beta202511211532"
30
30
  },
31
31
  "peerDependenciesMeta": {
32
32
  "ozone-schema-web": {
@@ -1,5 +1,6 @@
1
1
  import { StyleSheet, Platform } from "react-native";
2
2
  import { useThemeTypography, useThemeColor } from "../ConfigProvider";
3
+ import { alwaysColor } from "@xhs/reds-token-next";
3
4
 
4
5
  const avatarSizeToTagMargin = {
5
6
  small: -4,
@@ -162,7 +163,7 @@ export const getLiveTextStyles = (size: AvatarSize, liveIcon: any) => {
162
163
  liveTextSmall: {
163
164
  fontSize: 8,
164
165
  textAlign: "center",
165
- color: themeColor.White,
166
+ color: alwaysColor.White,
166
167
  display: "flex",
167
168
  justifyContent: "center",
168
169
  alignItems: "center",
@@ -170,18 +171,18 @@ export const getLiveTextStyles = (size: AvatarSize, liveIcon: any) => {
170
171
  liveTextMedium: {
171
172
  fontSize: 8,
172
173
  textAlign: "center",
173
- color: themeColor.White,
174
+ color: alwaysColor.White,
174
175
  },
175
176
  liveTextLarge: {
176
177
  fontSize: typography.C3FontSize,
177
178
  fontWeight: typography.C3FontWeight,
178
179
  textAlign: "center",
179
- color: themeColor.White,
180
+ color: alwaysColor.White,
180
181
  },
181
182
  liveTextXLarge: {
182
183
  fontSize: typography.C2FontSize,
183
184
  textAlign: "center",
184
- color: themeColor.White,
185
+ color: alwaysColor.White,
185
186
  },
186
187
  });
187
188
 
@@ -37,6 +37,7 @@ export default function App() {
37
37
  const [value14, setValue14] = useState("2023-10-05-12");
38
38
  const [value16, setValue16] = useState("2023-10-05-12-10");
39
39
  const [value17, setValue17] = useState("2025-9-15-14-25");
40
+ const [value18, setValue18] = useState("2025-11-20");
40
41
 
41
42
  const [visible1, setVisible1] = useState(false);
42
43
  const [visible2, setVisible2] = useState(false);
@@ -54,6 +55,7 @@ export default function App() {
54
55
  const [visible14, setVisible14] = useState(false);
55
56
  const [visible16, setVisible16] = useState(false);
56
57
  const [visible17, setVisible17] = useState(false);
58
+ const [visible18, setVisible18] = useState(false);
57
59
 
58
60
  const { show, remove } = useDatePicker();
59
61
  return (
@@ -329,6 +331,30 @@ export default function App() {
329
331
  >
330
332
  函数式调用
331
333
  </Button>
334
+
335
+ <Button
336
+ onClick={() => {
337
+ setVisible18(true);
338
+ }}
339
+ >
340
+ 跳动bug
341
+ </Button>
342
+ <DatePicker
343
+ visible={visible18}
344
+ value={value18}
345
+ label={"跳动bug"}
346
+ startTime={"1900-01-01"}
347
+ endTime={"2200-12-31"}
348
+ onConfirm={(val: string) => {
349
+ console.log("onConfirm18", val);
350
+ setValue18(val);
351
+ setVisible18(false);
352
+ }}
353
+ onChange={(val: string) => {
354
+ console.log("onChange18", val);
355
+ }}
356
+ onCancel={() => setVisible18(false)}
357
+ />
332
358
  <View style={{ height: 200 }}></View>
333
359
  </ScrollView>
334
360
  );
@@ -20,25 +20,26 @@ const Wheel = (props: RedsWheel) => {
20
20
  */
21
21
  const themeColor = useThemeColor();
22
22
 
23
- /**
24
- * index
25
- */
26
- const [index, setIndex] = useState<any>();
23
+ const [lastValue, setLastValue] = useState(value);
27
24
 
28
25
  /**
29
26
  * 初始化滚动高度
30
27
  */
31
28
  useEffect(() => {
32
- value && setIndex(getSelectIndex(column, value));
29
+ if (value !== lastValue) {
30
+ const idx = getSelectIndex(column, value);
31
+ handleScroll(idx);
32
+ }
33
33
  }, [column, value]);
34
34
 
35
- useEffect(() => {
36
- const newVal = column?.[index]?.value;
37
- scrollTo(index * itemHeight);
35
+ const handleScroll = (idx: number) => {
36
+ const newVal = column?.[idx]?.value;
37
+ scrollTo(idx * itemHeight);
38
38
  if (newVal) {
39
+ setLastValue(newVal);
39
40
  onSelect(newVal, props.index);
40
41
  }
41
- }, [index, props.index]);
42
+ };
42
43
 
43
44
  /**
44
45
  * 滚动ScrollView
@@ -83,11 +84,13 @@ const Wheel = (props: RedsWheel) => {
83
84
  e.persist?.();
84
85
  let contentOffset = e.nativeEvent.contentOffset;
85
86
  const selectIndex = Math.round(contentOffset.y / itemHeight);
86
- setIndex(selectIndex);
87
+ const newVal = column?.[selectIndex]?.value;
88
+ setLastValue(newVal);
89
+ onSelect(newVal, props.index);
87
90
  };
88
91
 
89
92
  const handleClick = (index: number) => {
90
- setIndex(index);
93
+ handleScroll(index);
91
94
  };
92
95
 
93
96
  /**
@@ -1,31 +1,31 @@
1
1
  interface Resources {
2
2
  componentKey: {
3
- sureKey: "確定";
4
- satisfyKey: "滿意";
5
- confirmKey: "確認";
6
- uploadingKey: "上傳中";
3
+ sureKey: "确定";
4
+ satisfyKey: "满意";
5
+ confirmKey: "确认";
6
+ uploadingKey: "上传中";
7
7
  resetKey: "重置";
8
- NoDataKey: "暫無數據";
8
+ NoDataKey: "暂无数据";
9
9
  liveStreamingKey: "直播";
10
10
  generallyKey: "一般";
11
- uploadFailedKey: "上傳失敗";
11
+ uploadFailedKey: "上传失败";
12
12
  submitKey: "提交";
13
- requestSuccessfulKey: "請求成功";
13
+ requestSuccessfulKey: "请求成功";
14
14
  cancelKey: "取消";
15
- PullDownToRefreshKey: "下拉重繪";
16
- selectAllKey: "全選";
17
- requestDataKey: "請求數據中";
15
+ PullDownToRefreshKey: "下拉刷新";
16
+ selectAllKey: "全选";
17
+ requestDataKey: "请求数据中";
18
18
  closeKey: "收起";
19
- veryBadKey: "極差";
20
- searchKey: "蒐索";
21
- expandKey: "展開";
22
- IDCardPhotoKey: "身份證人像面";
19
+ veryBadKey: "极差";
20
+ searchKey: "搜索";
21
+ expandKey: "展开";
22
+ IDCardPhotoKey: "身份证人像面";
23
23
  finishKey: "完成";
24
- surpriseKey: "驚喜";
25
- releaseRefreshKey: "鬆開重繪";
24
+ surpriseKey: "惊喜";
25
+ releaseRefreshKey: "松开刷新";
26
26
  nationalEmblemSideOfIDCardKey: "身份证国徽面";
27
- buttonKey: "按鈕";
28
- jumpKey: "跳轉";
27
+ buttonKey: "按钮";
28
+ jumpKey: "跳转";
29
29
  disappointmentKey: "失望";
30
30
  };
31
31
  }
@@ -1,4 +1,35 @@
1
1
  {
2
+ "zh_cn": {
3
+ "componentKey": {
4
+ "sureKey": "确定",
5
+ "satisfyKey": "满意",
6
+ "confirmKey": "确认",
7
+ "uploadingKey": "上传中",
8
+ "resetKey": "重置",
9
+ "NoDataKey": "暂无数据",
10
+ "liveStreamingKey": "直播",
11
+ "generallyKey": "一般",
12
+ "uploadFailedKey": "上传失败",
13
+ "submitKey": "提交",
14
+ "requestSuccessfulKey": "请求成功",
15
+ "cancelKey": "取消",
16
+ "PullDownToRefreshKey": "下拉刷新",
17
+ "selectAllKey": "全选",
18
+ "requestDataKey": "请求数据中",
19
+ "closeKey": "收起",
20
+ "veryBadKey": "极差",
21
+ "searchKey": "搜索",
22
+ "expandKey": "展开",
23
+ "IDCardPhotoKey": "身份证人像面",
24
+ "finishKey": "完成",
25
+ "surpriseKey": "惊喜",
26
+ "releaseRefreshKey": "松开刷新",
27
+ "nationalEmblemSideOfIDCardKey": "身份证国徽面",
28
+ "buttonKey": "按钮",
29
+ "jumpKey": "跳转",
30
+ "disappointmentKey": "失望"
31
+ }
32
+ },
2
33
  "zh_tw": {
3
34
  "componentKey": {
4
35
  "sureKey": "確定",
@@ -60,36 +91,5 @@
60
91
  "jumpKey": "Jump",
61
92
  "disappointmentKey": "Disappointment"
62
93
  }
63
- },
64
- "zh_cn": {
65
- "componentKey": {
66
- "sureKey": "确定",
67
- "satisfyKey": "满意",
68
- "confirmKey": "确认",
69
- "uploadingKey": "上传中",
70
- "resetKey": "重置",
71
- "NoDataKey": "暂无数据",
72
- "liveStreamingKey": "直播",
73
- "generallyKey": "一般",
74
- "uploadFailedKey": "上传失败",
75
- "submitKey": "提交",
76
- "requestSuccessfulKey": "请求成功",
77
- "cancelKey": "取消",
78
- "PullDownToRefreshKey": "下拉刷新",
79
- "selectAllKey": "全选",
80
- "requestDataKey": "请求数据中",
81
- "closeKey": "收起",
82
- "veryBadKey": "极差",
83
- "searchKey": "搜索",
84
- "expandKey": "展开",
85
- "IDCardPhotoKey": "身份证人像面",
86
- "finishKey": "完成",
87
- "surpriseKey": "惊喜",
88
- "releaseRefreshKey": "松开刷新",
89
- "nationalEmblemSideOfIDCardKey": "身份证国徽面",
90
- "buttonKey": "按钮",
91
- "jumpKey": "跳转",
92
- "disappointmentKey": "失望"
93
- }
94
94
  }
95
95
  }