@tarojs/components-react 4.1.5-beta.5 → 4.1.5-beta.6
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/dist/components/picker/index.js +34 -15
- package/dist/components/picker/index.js.map +1 -1
- package/dist/components/picker/picker-group.js +4 -0
- package/dist/components/picker/picker-group.js.map +1 -1
- package/dist/components/refresher/index.js +7 -0
- package/dist/components/refresher/index.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/solid/components/picker/index.js +34 -15
- package/dist/solid/components/picker/index.js.map +1 -1
- package/dist/solid/components/picker/picker-group.js +4 -0
- package/dist/solid/components/picker/picker-group.js.map +1 -1
- package/dist/solid/components/refresher/index.js +7 -0
- package/dist/solid/components/refresher/index.js.map +1 -0
- package/dist/solid/index.js +1 -0
- package/dist/solid/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker-group.js","sources":["../../../src/components/picker/picker-group.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport * as React from 'react'\n\n// 添加类型定义\ntype TaroScrollView = React.ElementRef<typeof ScrollView>\ntype TaroView = React.ElementRef<typeof View>\n\nexport interface PickerGroupProps {\n mode?: 'basic' | 'time' | 'date' | 'region'\n range: any[]\n rangeKey?: string\n columnId: string\n updateIndex: (index: number, columnId: string, needRevise?: boolean) => void // 替换updateHeight\n onColumnChange?: (e: { columnId: string, index: number }) => void // 修改回调参数名称\n updateDay?: (value: number, fields: number) => void\n selectedIndex?: number // 添加selectedIndex参数\n _updateTrigger?: any // 仅用于强制触发更新\n}\n\n// 定义常量\nconst PICKER_LINE_HEIGHT = 34 // px\nconst PICKER_VISIBLE_ITEMS = 7 // 可见行数\nconst PICKER_BLANK_ITEMS = 3 // 空白行数\n\nexport function PickerGroupBasic(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n onColumnChange,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n } = props\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n // 使用selectedIndex初始化当前索引\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n // 触摸状态用于优化用户体验\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n // 获取选中的索引\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001) // 随机数为了在一个项内滚动时强制刷新\n updateIndex(newIndex, columnId)\n onColumnChange?.({ columnId, index: newIndex })\n }, 100)\n }\n // 滚动处理 - 在滚动时计算索引然后更新选中项样式\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ref={(el) => (itemRefs.current[index] = el)}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 时间选择器实现\nexport function PickerGroupTime(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0,\n } = props\n\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n setIsTouching(false)\n // 调用updateIndex执行限位逻辑,获取是否触发了限位\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\n // 如果没有触发限位,才执行归中逻辑\n if (!isLimited) {\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001)\n }\n }, 100)\n }\n\n // 滚动处理\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ref={(el) => (itemRefs.current[index] = el)}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 日期选择器实现\nexport function PickerGroupDate(props: PickerGroupProps) {\n const {\n range = [],\n columnId,\n updateDay,\n selectedIndex = 0,\n } = props\n\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001) // 随机数为了在一个项内滚动时强制刷新\n\n // 更新日期值\n if (updateDay) {\n // 解析文本中的数字(移除年、月、日等后缀)\n const valueText = range[newIndex] || ''\n const numericValue = parseInt(valueText.replace(/[^0-9]/g, ''))\n updateDay(isNaN(numericValue) ? 0 : numericValue, parseInt(columnId))\n }\n }, 100)\n }\n\n // 滚动处理\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {item}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 地区选择器实现\nexport function PickerGroupRegion(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n } = props\n\n const scrollViewRef = React.useRef<any>(null)\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n const isUserBeginScrollRef = React.useRef(false)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 滚动结束处理\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001) // 随机数为了在一个项内滚动时强制刷新\n updateIndex(newIndex, columnId, false, isUserBeginScrollRef.current)\n }, 100)\n }\n\n // 滚动处理 - 在滚动时计算索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => {\n setIsTouching(true)\n isUserBeginScrollRef.current = true\n }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 默认导出,根据 mode 自动分发\nexport function PickerGroup(props: PickerGroupProps) {\n switch (props.mode) {\n case 'time':\n return <PickerGroupTime {...props} />\n case 'date':\n return <PickerGroupDate {...props} />\n case 'region':\n return <PickerGroupRegion {...props} />\n default:\n return <PickerGroupBasic {...props} />\n }\n}\n"],"names":["PICKER_LINE_HEIGHT","PICKER_VISIBLE_ITEMS","PICKER_BLANK_ITEMS","PickerGroupBasic","props","range","rangeKey","columnId","updateIndex","onColumnChange","selectedIndex","targetScrollTop","setTargetScrollTop","React","useState","scrollViewRef","useRef","itemRefs","currentIndex","setCurrentIndex","isTouching","setIsTouching","itemHeightRef","useEffect","current","scrollHeight","childNodes","length","getSelectedIndex","scrollTop","Math","round","isCenterTimerId","handleScrollEnd","clearTimeout","setTimeout","newIndex","random","index","handleScroll","pickerItem","map","item","content","_jsx","View","id","ref","el","className","style","height","children","realPickerItems","Array","fill","_","idx","_jsxs","ScrollView","scrollY","showScrollbar","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","PickerGroupTime","isLimited","Boolean","PickerGroupDate","updateDay","valueText","numericValue","parseInt","replace","isNaN","PickerGroupRegion","isUserBeginScrollRef","PickerGroup","mode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"picker-group.js","sources":["../../../src/components/picker/picker-group.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport * as React from 'react'\n\n// 添加类型定义\ntype TaroScrollView = React.ElementRef<typeof ScrollView>\ntype TaroView = React.ElementRef<typeof View>\n\nexport interface PickerGroupProps {\n mode?: 'basic' | 'time' | 'date' | 'region'\n range: any[]\n rangeKey?: string\n columnId: string\n updateIndex: (index: number, columnId: string, needRevise?: boolean) => void // 替换updateHeight\n onColumnChange?: (e: { columnId: string, index: number }) => void // 修改回调参数名称\n updateDay?: (value: number, fields: number) => void\n selectedIndex?: number // 添加selectedIndex参数\n _updateTrigger?: any // 仅用于强制触发更新\n}\n\n// 定义常量\nconst PICKER_LINE_HEIGHT = 34 // px\nconst PICKER_VISIBLE_ITEMS = 7 // 可见行数\nconst PICKER_BLANK_ITEMS = 3 // 空白行数\n\nexport function PickerGroupBasic(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n onColumnChange,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n } = props\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n // 使用selectedIndex初始化当前索引\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n // 触摸状态用于优化用户体验\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n // 获取选中的索引\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001) // 随机数为了在一个项内滚动时强制刷新\n updateIndex(newIndex, columnId)\n onColumnChange?.({ columnId, index: newIndex })\n }, 100)\n }\n // 滚动处理 - 在滚动时计算索引然后更新选中项样式\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ref={(el) => (itemRefs.current[index] = el)}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 时间选择器实现\nexport function PickerGroupTime(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0,\n } = props\n\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const itemRefs = React.useRef<Array<TaroView | null>>([])\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n setIsTouching(false)\n // 调用updateIndex执行限位逻辑,获取是否触发了限位\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\n // 如果没有触发限位,才执行归中逻辑\n if (!isLimited) {\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001)\n }\n }, 100)\n }\n\n // 滚动处理\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ref={(el) => (itemRefs.current[index] = el)}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 日期选择器实现\nexport function PickerGroupDate(props: PickerGroupProps) {\n const {\n range = [],\n columnId,\n updateDay,\n selectedIndex = 0,\n } = props\n\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 简化为直接在滚动结束时通知父组件\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001) // 随机数为了在一个项内滚动时强制刷新\n\n // 更新日期值\n if (updateDay) {\n // 解析文本中的数字(移除年、月、日等后缀)\n const valueText = range[newIndex] || ''\n const numericValue = parseInt(valueText.replace(/[^0-9]/g, ''))\n updateDay(isNaN(numericValue) ? 0 : numericValue, parseInt(columnId))\n }\n }, 100)\n }\n\n // 滚动处理\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {item}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => setIsTouching(true)}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 地区选择器实现\nexport function PickerGroupRegion(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n } = props\n\n const scrollViewRef = React.useRef<any>(null)\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const [isTouching, setIsTouching] = React.useState(false)\n\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n const isUserBeginScrollRef = React.useRef(false)\n React.useEffect(() => {\n if (scrollViewRef.current) {\n itemHeightRef.current = scrollViewRef.current.scrollHeight / scrollViewRef.current.childNodes.length\n }\n }, [range.length]) // 只在range长度变化时重新计算\n\n const getSelectedIndex = (scrollTop: number) => {\n return Math.round(scrollTop / itemHeightRef.current)\n }\n\n // 当selectedIndex变化时,调整滚动位置\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouching) {\n setTargetScrollTop(selectedIndex * itemHeightRef.current)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range])\n\n // 滚动结束处理\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 做一个0.1s延时 0.1s之内没有新的滑动 则把选项归到中间 然后更新选中项\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n\n setIsTouching(false)\n setTargetScrollTop(newIndex * itemHeightRef.current + Math.random() * 0.001) // 随机数为了在一个项内滚动时强制刷新\n updateIndex(newIndex, columnId, false, isUserBeginScrollRef.current)\n }, 100)\n }\n\n // 滚动处理 - 在滚动时计算索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n style={{ height: PICKER_LINE_HEIGHT }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n return (\n <View className=\"taro-picker__group\">\n <View className=\"taro-picker__mask\" />\n <View className=\"taro-picker__indicator\" />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n onScroll={handleScroll}\n onTouchStart={() => {\n setIsTouching(true)\n isUserBeginScrollRef.current = true\n }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 默认导出,根据 mode 自动分发\nexport function PickerGroup(props: PickerGroupProps) {\n switch (props.mode) {\n case 'time':\n return <PickerGroupTime {...props} />\n case 'date':\n return <PickerGroupDate {...props} />\n case 'region':\n return <PickerGroupRegion {...props} />\n default:\n return <PickerGroupBasic {...props} />\n }\n}\n"],"names":["PICKER_LINE_HEIGHT","PICKER_VISIBLE_ITEMS","PICKER_BLANK_ITEMS","PickerGroupBasic","props","range","rangeKey","columnId","updateIndex","onColumnChange","selectedIndex","targetScrollTop","setTargetScrollTop","React","useState","scrollViewRef","useRef","itemRefs","currentIndex","setCurrentIndex","isTouching","setIsTouching","itemHeightRef","useEffect","current","scrollHeight","childNodes","length","getSelectedIndex","scrollTop","Math","round","isCenterTimerId","handleScrollEnd","clearTimeout","setTimeout","newIndex","random","index","handleScroll","pickerItem","map","item","content","_jsx","View","id","ref","el","className","style","height","children","realPickerItems","Array","fill","_","idx","_jsxs","ScrollView","scrollY","showScrollbar","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","PickerGroupTime","isLimited","Boolean","PickerGroupDate","updateDay","valueText","numericValue","parseInt","replace","isNaN","PickerGroupRegion","isUserBeginScrollRef","PickerGroup","mode"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/refresher/index.ts"],"sourcesContent":["import { View } from '@tarojs/components'\n\n// TODO: Refresher 组件未实现,暂时使用 View 组件\nconst Refresher = View\n\nexport default Refresher\n"],"names":["Refresher","View"],"mappings":";;AAEA;AACMA,MAAAA,SAAS,GAAGC;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { default as Image } from './components/image/index.js';
|
|
|
5
5
|
export { default as Input } from './components/input/index.js';
|
|
6
6
|
export { default as Picker } from './components/picker/index.js';
|
|
7
7
|
export { default as PullDownRefresh } from './components/pull-down-refresh/index.js';
|
|
8
|
+
export { default as Refresher } from './components/refresher/index.js';
|
|
8
9
|
export { default as ScrollView } from './components/scroll-view/index.js';
|
|
9
10
|
export { Swiper, SwiperItem } from './components/swiper/index.js';
|
|
10
11
|
export { default as Text } from './components/text/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.react.ts"],"sourcesContent":["/* eslint-disable simple-import-sort/exports */\nexport { Ad } from '@tarojs/components/lib/react'\nexport { AdCustom } from '@tarojs/components/lib/react'\nexport { AnimationVideo } from '@tarojs/components/lib/react'\nexport { AnimationView } from '@tarojs/components/lib/react'\nexport { ArCamera } from '@tarojs/components/lib/react'\nexport { Audio } from '@tarojs/components/lib/react'\nexport { AwemeData } from '@tarojs/components/lib/react'\nexport { Block } from '@tarojs/components/lib/react'\nexport { default as Button } from './components/button'\nexport { Camera } from '@tarojs/components/lib/react'\nexport { Canvas } from '@tarojs/components/lib/react'\nexport { ChannelLive } from '@tarojs/components/lib/react'\nexport { ChannelVideo } from '@tarojs/components/lib/react'\nexport { Checkbox, CheckboxGroup } from '@tarojs/components/lib/react'\nexport { CommentDetail, CommentList } from '@tarojs/components/lib/react'\nexport { ContactButton } from '@tarojs/components/lib/react'\nexport { CoverImage } from '@tarojs/components/lib/react'\nexport { CoverView } from '@tarojs/components/lib/react'\nexport { CustomWrapper } from '@tarojs/components/lib/react'\nexport { DraggableSheet } from '@tarojs/components/lib/react'\nexport { Editor } from '@tarojs/components/lib/react'\nexport { FollowSwan } from '@tarojs/components/lib/react'\nexport { Form } from '@tarojs/components/lib/react'\nexport { FunctionalPageNavigator } from '@tarojs/components/lib/react'\nexport { GridView } from '@tarojs/components/lib/react'\nexport { GridBuilder } from '@tarojs/components/lib/react'\nexport { default as Icon } from './components/icon'\nexport { default as Image } from './components/image'\nexport { InlinePaymentPanel } from '@tarojs/components/lib/react'\nexport { default as Input } from './components/input'\nexport { KeyboardAccessory } from '@tarojs/components/lib/react'\nexport { Label } from '@tarojs/components/lib/react'\nexport { Lifestyle } from '@tarojs/components/lib/react'\nexport { Like } from '@tarojs/components/lib/react'\nexport { LivePlayer } from '@tarojs/components/lib/react'\nexport { LivePusher } from '@tarojs/components/lib/react'\nexport { ListBuilder } from '@tarojs/components/lib/react'\nexport { ListView } from '@tarojs/components/lib/react'\nexport { Login } from '@tarojs/components/lib/react'\nexport { Lottie } from '@tarojs/components/lib/react'\nexport { Map } from '@tarojs/components/lib/react'\nexport { MatchMedia } from '@tarojs/components/lib/react'\nexport { MovableArea, MovableView } from '@tarojs/components/lib/react'\nexport { NavigationBar } from '@tarojs/components/lib/react'\nexport { Navigator } from '@tarojs/components/lib/react'\nexport { NestedScrollBody } from '@tarojs/components/lib/react'\nexport { NestedScrollHeader } from '@tarojs/components/lib/react'\nexport { OfficialAccount } from '@tarojs/components/lib/react'\nexport { OpenData } from '@tarojs/components/lib/react'\nexport { OpenContainer } from '@tarojs/components/lib/react'\nexport { PageContainer } from '@tarojs/components/lib/react'\nexport { PageMeta } from '@tarojs/components/lib/react'\nexport { default as Picker } from './components/picker'\nexport { PickerView, PickerViewColumn } from '@tarojs/components/lib/react'\nexport { Progress } from '@tarojs/components/lib/react'\nexport { default as PullDownRefresh } from './components/pull-down-refresh'\n// export { PullToRefresh } from '@tarojs/components/lib/react'\nexport { Radio, RadioGroup } from '@tarojs/components/lib/react'\nexport { RichText } from '@tarojs/components/lib/react'\nexport { RootPortal } from '@tarojs/components/lib/react'\nexport { RtcRoom, RtcRoomItem } from '@tarojs/components/lib/react'\nexport { Script } from '@tarojs/components/lib/react'\nexport { default as ScrollView } from './components/scroll-view'\nexport { ShareElement } from '@tarojs/components/lib/react'\nexport { Slider } from '@tarojs/components/lib/react'\nexport { Snapshot } from '@tarojs/components/lib/react'\nexport { Span } from '@tarojs/components/lib/react'\nexport { NativeSlot, Slot } from '@tarojs/components/lib/react'\nexport { Swiper, SwiperItem } from './components/swiper'\nexport { Switch } from '@tarojs/components/lib/react'\nexport { Tabs } from '@tarojs/components/lib/react'\nexport { default as Text } from './components/text'\nexport { Textarea } from '@tarojs/components/lib/react'\nexport { Video } from '@tarojs/components/lib/react'\nexport { default as View } from './components/view'\nexport { VoipRoom } from '@tarojs/components/lib/react'\nexport { WebView } from '@tarojs/components/lib/react'\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.react.ts"],"sourcesContent":["/* eslint-disable simple-import-sort/exports */\nexport { Ad } from '@tarojs/components/lib/react'\nexport { AdCustom } from '@tarojs/components/lib/react'\nexport { AnimationVideo } from '@tarojs/components/lib/react'\nexport { AnimationView } from '@tarojs/components/lib/react'\nexport { ArCamera } from '@tarojs/components/lib/react'\nexport { Audio } from '@tarojs/components/lib/react'\nexport { AwemeData } from '@tarojs/components/lib/react'\nexport { Block } from '@tarojs/components/lib/react'\nexport { default as Button } from './components/button'\nexport { Camera } from '@tarojs/components/lib/react'\nexport { Canvas } from '@tarojs/components/lib/react'\nexport { ChannelLive } from '@tarojs/components/lib/react'\nexport { ChannelVideo } from '@tarojs/components/lib/react'\nexport { Checkbox, CheckboxGroup } from '@tarojs/components/lib/react'\nexport { CommentDetail, CommentList } from '@tarojs/components/lib/react'\nexport { ContactButton } from '@tarojs/components/lib/react'\nexport { CoverImage } from '@tarojs/components/lib/react'\nexport { CoverView } from '@tarojs/components/lib/react'\nexport { CustomWrapper } from '@tarojs/components/lib/react'\nexport { DraggableSheet } from '@tarojs/components/lib/react'\nexport { Editor } from '@tarojs/components/lib/react'\nexport { FollowSwan } from '@tarojs/components/lib/react'\nexport { Form } from '@tarojs/components/lib/react'\nexport { FunctionalPageNavigator } from '@tarojs/components/lib/react'\nexport { GridView } from '@tarojs/components/lib/react'\nexport { GridBuilder } from '@tarojs/components/lib/react'\nexport { default as Icon } from './components/icon'\nexport { default as Image } from './components/image'\nexport { InlinePaymentPanel } from '@tarojs/components/lib/react'\nexport { default as Input } from './components/input'\nexport { KeyboardAccessory } from '@tarojs/components/lib/react'\nexport { Label } from '@tarojs/components/lib/react'\nexport { Lifestyle } from '@tarojs/components/lib/react'\nexport { Like } from '@tarojs/components/lib/react'\nexport { LivePlayer } from '@tarojs/components/lib/react'\nexport { LivePusher } from '@tarojs/components/lib/react'\nexport { ListBuilder } from '@tarojs/components/lib/react'\nexport { ListView } from '@tarojs/components/lib/react'\nexport { Login } from '@tarojs/components/lib/react'\nexport { Lottie } from '@tarojs/components/lib/react'\nexport { Map } from '@tarojs/components/lib/react'\nexport { MatchMedia } from '@tarojs/components/lib/react'\nexport { MovableArea, MovableView } from '@tarojs/components/lib/react'\nexport { NavigationBar } from '@tarojs/components/lib/react'\nexport { Navigator } from '@tarojs/components/lib/react'\nexport { NestedScrollBody } from '@tarojs/components/lib/react'\nexport { NestedScrollHeader } from '@tarojs/components/lib/react'\nexport { OfficialAccount } from '@tarojs/components/lib/react'\nexport { OpenData } from '@tarojs/components/lib/react'\nexport { OpenContainer } from '@tarojs/components/lib/react'\nexport { PageContainer } from '@tarojs/components/lib/react'\nexport { PageMeta } from '@tarojs/components/lib/react'\nexport { default as Picker } from './components/picker'\nexport { PickerView, PickerViewColumn } from '@tarojs/components/lib/react'\nexport { Progress } from '@tarojs/components/lib/react'\nexport { default as PullDownRefresh } from './components/pull-down-refresh'\n// export { PullToRefresh } from '@tarojs/components/lib/react'\nexport { default as Refresher } from './components/refresher'\nexport { Radio, RadioGroup } from '@tarojs/components/lib/react'\nexport { RichText } from '@tarojs/components/lib/react'\nexport { RootPortal } from '@tarojs/components/lib/react'\nexport { RtcRoom, RtcRoomItem } from '@tarojs/components/lib/react'\nexport { Script } from '@tarojs/components/lib/react'\nexport { default as ScrollView } from './components/scroll-view'\nexport { ShareElement } from '@tarojs/components/lib/react'\nexport { Slider } from '@tarojs/components/lib/react'\nexport { Snapshot } from '@tarojs/components/lib/react'\nexport { Span } from '@tarojs/components/lib/react'\nexport { NativeSlot, Slot } from '@tarojs/components/lib/react'\nexport { Swiper, SwiperItem } from './components/swiper'\nexport { Switch } from '@tarojs/components/lib/react'\nexport { Tabs } from '@tarojs/components/lib/react'\nexport { default as Text } from './components/text'\nexport { Textarea } from '@tarojs/components/lib/react'\nexport { Video } from '@tarojs/components/lib/react'\nexport { default as View } from './components/view'\nexport { VoipRoom } from '@tarojs/components/lib/react'\nexport { WebView } from '@tarojs/components/lib/react'\n"],"names":[],"mappings":";;;;;;;;;;;;;AAAA"}
|
|
@@ -10,6 +10,17 @@ import { PickerGroup } from './picker-group.js';
|
|
|
10
10
|
// 稳定的空数组引用,避免每次渲染都创建新引用
|
|
11
11
|
const EMPTY_ARRAY = [];
|
|
12
12
|
const EMPTY_OBJECT = {};
|
|
13
|
+
// 语言映射函数
|
|
14
|
+
function getLanguageText(lang) {
|
|
15
|
+
const isEnglish = lang === 'en-US' || lang === 'en-GB';
|
|
16
|
+
return {
|
|
17
|
+
confirm: isEnglish ? 'Confirm' : '确定',
|
|
18
|
+
cancel: isEnglish ? 'Cancel' : '取消',
|
|
19
|
+
year: isEnglish ? 'Year ' : '年',
|
|
20
|
+
month: isEnglish ? 'Month ' : '月',
|
|
21
|
+
day: isEnglish ? 'Day ' : '日'
|
|
22
|
+
};
|
|
23
|
+
}
|
|
13
24
|
// 数据验证函数
|
|
14
25
|
function validateRegionData(data) {
|
|
15
26
|
let componentName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Picker';
|
|
@@ -115,9 +126,10 @@ const Picker = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
|
115
126
|
onCancel,
|
|
116
127
|
children,
|
|
117
128
|
style,
|
|
118
|
-
formType
|
|
129
|
+
formType,
|
|
130
|
+
lang
|
|
119
131
|
} = props,
|
|
120
|
-
restProps = __rest(props, ["mode", "disabled", "range", "rangeKey", "value", "start", "end", "fields", "headerText", "level", "regionData", "textProps", "onChange", "onColumnChange", "onCancel", "children", "style", "formType"]);
|
|
132
|
+
restProps = __rest(props, ["mode", "disabled", "range", "rangeKey", "value", "start", "end", "fields", "headerText", "level", "regionData", "textProps", "onChange", "onColumnChange", "onCancel", "children", "style", "formType", "lang"]);
|
|
121
133
|
const indexRef = React__default.useRef([]);
|
|
122
134
|
const pickerDateRef = React__default.useRef();
|
|
123
135
|
// 记录是否是用户滚动
|
|
@@ -265,15 +277,18 @@ const Picker = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
|
265
277
|
// 隐藏 Picker
|
|
266
278
|
const hidePicker = React__default.useCallback(() => {
|
|
267
279
|
isInitializationCompletedRef.current = false;
|
|
280
|
+
// 动画暂时不支持,暂时屏蔽相关样式挂载逻辑
|
|
281
|
+
// setState(prev => ({ ...prev, fadeOut: true }))
|
|
282
|
+
// setTimeout(() => {
|
|
283
|
+
// setState(prev => ({
|
|
284
|
+
// ...prev,
|
|
285
|
+
// hidden: true,
|
|
286
|
+
// fadeOut: false
|
|
287
|
+
// }))
|
|
288
|
+
// }, 350)
|
|
268
289
|
setState(prev => Object.assign(Object.assign({}, prev), {
|
|
269
|
-
|
|
290
|
+
hidden: true
|
|
270
291
|
}));
|
|
271
|
-
setTimeout(() => {
|
|
272
|
-
setState(prev => Object.assign(Object.assign({}, prev), {
|
|
273
|
-
hidden: true,
|
|
274
|
-
fadeOut: false
|
|
275
|
-
}));
|
|
276
|
-
}, 350);
|
|
277
292
|
}, []);
|
|
278
293
|
// 更新索引
|
|
279
294
|
const updateIndex = React__default.useCallback(function (index, columnId) {
|
|
@@ -630,9 +645,11 @@ const Picker = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
|
630
645
|
} = pickerDateRef.current;
|
|
631
646
|
const currentYear = _updateValue[0];
|
|
632
647
|
const currentMonth = _updateValue[1];
|
|
633
|
-
const
|
|
634
|
-
const
|
|
635
|
-
const
|
|
648
|
+
const langText = getLanguageText(lang);
|
|
649
|
+
const isEnglish = lang === 'en-US' || lang === 'en-GB';
|
|
650
|
+
const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear()).map(item => isEnglish ? `${langText.year}${item}` : `${item}${langText.year}`);
|
|
651
|
+
const monthRange = getMonthRange(_start, _end, currentYear).map(item => isEnglish ? `${langText.month}${item < 10 ? `0${item}` : item}` : `${item < 10 ? `0${item}` : item}${langText.month}`);
|
|
652
|
+
const dayRange = getDayRange(_start, _end, currentYear, currentMonth).map(item => isEnglish ? `${langText.day}${item < 10 ? `0${item}` : item}` : `${item < 10 ? `0${item}` : item}${langText.day}`);
|
|
636
653
|
const renderView = [createComponent(PickerGroup, {
|
|
637
654
|
key: `year`,
|
|
638
655
|
mode: "date",
|
|
@@ -722,7 +739,7 @@ const Picker = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
|
722
739
|
}
|
|
723
740
|
});
|
|
724
741
|
}
|
|
725
|
-
}, [mode, range, rangeKey, fields, updateIndex, updateDay, handleColumnChange, pickerDateRef.current, level, regionData, state.selectedIndices, columnsCount]);
|
|
742
|
+
}, [mode, range, rangeKey, fields, updateIndex, updateDay, handleColumnChange, pickerDateRef.current, level, regionData, state.selectedIndices, columnsCount, lang]);
|
|
726
743
|
// 动画类名控制逻辑
|
|
727
744
|
const clsMask = classNames('taro-picker__mask-overlay', 'taro-picker__animate-fade-in', {
|
|
728
745
|
'taro-picker__animate-fade-out': state.fadeOut
|
|
@@ -735,6 +752,8 @@ const Picker = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
|
735
752
|
showPicker,
|
|
736
753
|
hidePicker
|
|
737
754
|
}));
|
|
755
|
+
// 获取语言文本
|
|
756
|
+
const langText = getLanguageText(lang);
|
|
738
757
|
return createComponent(View, mergeProps({
|
|
739
758
|
ref(r$) {
|
|
740
759
|
var _ref$ = ref;
|
|
@@ -764,7 +783,7 @@ const Picker = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
|
764
783
|
className: "taro-picker__action",
|
|
765
784
|
onClick: handleCancel,
|
|
766
785
|
get children() {
|
|
767
|
-
return (_a = textProps.cancelText) !== null && _a !== void 0 ? _a :
|
|
786
|
+
return (_a = textProps.cancelText) !== null && _a !== void 0 ? _a : langText.cancel;
|
|
768
787
|
}
|
|
769
788
|
}), memo(() => headerText && createComponent(View, {
|
|
770
789
|
className: "taro-picker__title",
|
|
@@ -773,7 +792,7 @@ const Picker = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
|
773
792
|
className: "taro-picker__action",
|
|
774
793
|
onClick: handleChange,
|
|
775
794
|
get children() {
|
|
776
|
-
return (_b = textProps.okText) !== null && _b !== void 0 ? _b :
|
|
795
|
+
return (_b = textProps.okText) !== null && _b !== void 0 ? _b : langText.confirm;
|
|
777
796
|
}
|
|
778
797
|
})];
|
|
779
798
|
}
|