From b3a5882d82960f274c02fdca6338f38085306716 Mon Sep 17 00:00:00 2001 From: oasis-cloud Date: Tue, 11 Jun 2024 20:03:39 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat(pulltorefresh):=20=E9=80=82=E9=85=8D?= =?UTF-8?q?=E9=B8=BF=E8=92=99=E3=80=81RN=E3=80=81=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E3=80=81H5;=20RN=20scrollview=20=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E6=97=A0=E6=B3=95=E9=98=BB=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scripts/taro/adapted.js | 26 +- packages/nutui-taro-demo-rn/src/app.config.ts | 223 +++++++++--------- .../pages/pulltorefresh/index.config.ts | 2 +- .../feedback/pages/pulltorefresh/index.tsx | 3 +- src/config.json | 2 +- src/packages/pulltorefresh/demo.taro.tsx | 11 +- .../pulltorefresh/demos/taro/demo1.tsx | 50 ++-- .../pulltorefresh/demos/taro/demo2.tsx | 13 +- .../pulltorefresh/demos/taro/demo3.tsx | 47 ++-- .../pulltorefresh/pulltorefresh.harmony.css | 14 +- src/packages/pulltorefresh/pulltorefresh.scss | 9 +- .../pulltorefresh/pulltorefresh.taro.tsx | 57 ++++- src/packages/pulltorefresh/pulltorefresh.tsx | 40 +++- 13 files changed, 269 insertions(+), 228 deletions(-) diff --git a/packages/nutui-taro-demo-rn/scripts/taro/adapted.js b/packages/nutui-taro-demo-rn/scripts/taro/adapted.js index b69f00ba0f..a57f199565 100644 --- a/packages/nutui-taro-demo-rn/scripts/taro/adapted.js +++ b/packages/nutui-taro-demo-rn/scripts/taro/adapted.js @@ -1,25 +1 @@ -exports = module.exports = [ - 'cell', - 'cellgroup', - 'overlay', - 'button', - 'switch', - 'countdown', - 'empty', - 'price', - 'tag', - 'layout', - 'row', - 'col', - 'space', - 'grid', - 'griditem', - 'divider', - 'image', - 'resultpage', - 'notify', - 'pagination', - 'swiper', - 'textarea', - 'indicator', -] +exports = module.exports = ["cell","cellgroup","overlay","button","switch","countdown","empty","price","tag","layout","row","col","space","grid","griditem","divider","image","resultpage","notify","pagination","swiper","textarea","indicator","pulltorefresh"]; \ No newline at end of file diff --git a/packages/nutui-taro-demo-rn/src/app.config.ts b/packages/nutui-taro-demo-rn/src/app.config.ts index 69917b5166..3600fe3721 100644 --- a/packages/nutui-taro-demo-rn/src/app.config.ts +++ b/packages/nutui-taro-demo-rn/src/app.config.ts @@ -1,134 +1,135 @@ + const subPackages = [ { - root: 'base', - pages: [ - 'pages/button/index', - 'pages/cell/index', - 'pages/configprovider/index', - 'pages/icon/index', - 'pages/image/index', - 'pages/overlay/index', - ], + "root": "base", + "pages": [ + "pages/button/index", + "pages/cell/index", + "pages/configprovider/index", + "pages/icon/index", + "pages/image/index", + "pages/overlay/index" + ] }, { - root: 'layout', - pages: [ - 'pages/divider/index', - 'pages/grid/index', - 'pages/layout/index', - 'pages/safearea/index', - 'pages/space/index', - 'pages/sticky/index', - ], + "root": "layout", + "pages": [ + "pages/divider/index", + "pages/grid/index", + "pages/layout/index", + "pages/safearea/index", + "pages/space/index", + "pages/sticky/index" + ] }, { - root: 'nav', - pages: [ - 'pages/backtop/index', - 'pages/elevator/index', - 'pages/fixednav/index', - 'pages/navbar/index', - 'pages/sidenavbar/index', - 'pages/tabbar/index', - 'pages/tabs/index', - ], + "root": "nav", + "pages": [ + "pages/backtop/index", + "pages/elevator/index", + "pages/fixednav/index", + "pages/navbar/index", + "pages/sidenavbar/index", + "pages/tabbar/index", + "pages/tabs/index" + ] }, { - root: 'dentry', - pages: [ - 'pages/address/index', - 'pages/calendar/index', - 'pages/calendarcard/index', - 'pages/cascader/index', - 'pages/checkbox/index', - 'pages/datepicker/index', - 'pages/form/index', - 'pages/input/index', - 'pages/inputnumber/index', - ], + "root": "dentry", + "pages": [ + "pages/address/index", + "pages/calendar/index", + "pages/calendarcard/index", + "pages/cascader/index", + "pages/checkbox/index", + "pages/datepicker/index", + "pages/form/index", + "pages/input/index", + "pages/inputnumber/index" + ] }, { - root: 'dentry1', - pages: [ - 'pages/menu/index', - 'pages/numberkeyboard/index', - 'pages/picker/index', - 'pages/radio/index', - 'pages/range/index', - 'pages/rate/index', - 'pages/searchbar/index', - 'pages/shortpassword/index', - 'pages/signature/index', - 'pages/switch/index', - 'pages/textarea/index', - 'pages/uploader/index', - ], + "root": "dentry1", + "pages": [ + "pages/menu/index", + "pages/numberkeyboard/index", + "pages/picker/index", + "pages/radio/index", + "pages/range/index", + "pages/rate/index", + "pages/searchbar/index", + "pages/shortpassword/index", + "pages/signature/index", + "pages/switch/index", + "pages/textarea/index", + "pages/uploader/index" + ] }, { - root: 'feedback', - pages: [ - 'pages/actionsheet/index', - 'pages/badge/index', - 'pages/dialog/index', - 'pages/drag/index', - 'pages/empty/index', - 'pages/infiniteloading/index', - 'pages/loading/index', - 'pages/noticebar/index', - 'pages/notify/index', - 'pages/popover/index', - 'pages/popup/index', - 'pages/pulltorefresh/index', - 'pages/skeleton/index', - 'pages/swipe/index', - 'pages/toast/index', - 'pages/resultpage/index', - ], + "root": "feedback", + "pages": [ + "pages/actionsheet/index", + "pages/badge/index", + "pages/dialog/index", + "pages/drag/index", + "pages/empty/index", + "pages/infiniteloading/index", + "pages/loading/index", + "pages/noticebar/index", + "pages/notify/index", + "pages/popover/index", + "pages/popup/index", + "pages/pulltorefresh/index", + "pages/resultpage/index", + "pages/skeleton/index", + "pages/swipe/index", + "pages/toast/index" + ] }, { - root: 'exhibition', - pages: [ - 'pages/animate/index', - 'pages/animatingnumbers/index', - 'pages/avatar/index', - 'pages/circleprogress/index', - 'pages/collapse/index', - 'pages/countdown/index', - 'pages/ellipsis/index', - 'pages/imagepreview/index', - 'pages/indicator/index', - 'pages/pagination/index', - 'pages/price/index', - 'pages/progress/index', - 'pages/steps/index', - 'pages/swiper/index', - 'pages/table/index', - 'pages/tag/index', - 'pages/tour/index', - 'pages/video/index', - 'pages/virtuallist/index', - ], + "root": "exhibition", + "pages": [ + "pages/animate/index", + "pages/animatingnumbers/index", + "pages/avatar/index", + "pages/circleprogress/index", + "pages/collapse/index", + "pages/countdown/index", + "pages/ellipsis/index", + "pages/imagepreview/index", + "pages/indicator/index", + "pages/pagination/index", + "pages/price/index", + "pages/progress/index", + "pages/steps/index", + "pages/swiper/index", + "pages/table/index", + "pages/tag/index", + "pages/tour/index", + "pages/video/index", + "pages/virtuallist/index" + ] }, { - root: 'business', - pages: [ - 'pages/avatarcropper/index', - 'pages/barrage/index', - 'pages/card/index', - 'pages/timeselect/index', - 'pages/trendarrow/index', - 'pages/watermark/index', - ], - }, -] + "root": "business", + "pages": [ + "pages/avatarcropper/index", + "pages/barrage/index", + "pages/card/index", + "pages/timeselect/index", + "pages/trendarrow/index", + "pages/watermark/index" + ] + } +]; -export default defineAppConfig({ +export default defineAppConfig ({ pages: ['pages/index/index'], subPackages, window: { backgroundTextStyle: 'light', navigationBarBackgroundColor: '#fff', navigationBarTitleText: 'NutUI-React', - navigationBarTextStyle: 'black', - }, -}) + navigationBarTextStyle: 'black' + } +}) \ No newline at end of file diff --git a/packages/nutui-taro-demo-rn/src/feedback/pages/pulltorefresh/index.config.ts b/packages/nutui-taro-demo-rn/src/feedback/pages/pulltorefresh/index.config.ts index 350fc31c3f..0f2566639f 100644 --- a/packages/nutui-taro-demo-rn/src/feedback/pages/pulltorefresh/index.config.ts +++ b/packages/nutui-taro-demo-rn/src/feedback/pages/pulltorefresh/index.config.ts @@ -1,3 +1,3 @@ export default { - navigationBarTitleText: 'PullToRefresh', + navigationBarTitleText: 'Pulltorefresh' } \ No newline at end of file diff --git a/packages/nutui-taro-demo-rn/src/feedback/pages/pulltorefresh/index.tsx b/packages/nutui-taro-demo-rn/src/feedback/pages/pulltorefresh/index.tsx index 039e05e8ec..657e772514 100644 --- a/packages/nutui-taro-demo-rn/src/feedback/pages/pulltorefresh/index.tsx +++ b/packages/nutui-taro-demo-rn/src/feedback/pages/pulltorefresh/index.tsx @@ -1 +1,2 @@ -export default <>button; \ No newline at end of file +import Demo from '@/packages/pulltorefresh/demo.taro'; +export default Demo; \ No newline at end of file diff --git a/src/config.json b/src/config.json index dff7011862..081a7a66f5 100644 --- a/src/config.json +++ b/src/config.json @@ -816,7 +816,7 @@ "author": "szg2008" }, { - "version": "2.0.0", + "version": "3.0.0", "name": "PullToRefresh", "type": "component", "cName": "δΈ‹ζ‹‰εˆ·ζ–°", diff --git a/src/packages/pulltorefresh/demo.taro.tsx b/src/packages/pulltorefresh/demo.taro.tsx index 3ca65a8124..728490d445 100644 --- a/src/packages/pulltorefresh/demo.taro.tsx +++ b/src/packages/pulltorefresh/demo.taro.tsx @@ -1,5 +1,6 @@ import React from 'react' import Taro from '@tarojs/taro' +import { ScrollView, View } from '@tarojs/components' import Header from '@/sites/components/header' import { useTranslate } from '@/sites/assets/locale/taro' import Demo1 from './demos/taro/demo1' @@ -27,16 +28,16 @@ const PullToRefreshDemo = () => { return ( <>
-
-

{translated.basic}

+ + {translated.basic} -

{translated.scrollView}

+ {translated.scrollView} -

{translated.primary}

+ {translated.primary} -
+ ) } diff --git a/src/packages/pulltorefresh/demos/taro/demo1.tsx b/src/packages/pulltorefresh/demos/taro/demo1.tsx index 29db55e4ba..e36b9d09b8 100644 --- a/src/packages/pulltorefresh/demos/taro/demo1.tsx +++ b/src/packages/pulltorefresh/demos/taro/demo1.tsx @@ -1,14 +1,12 @@ import React, { useState } from 'react' -import { PullToRefresh, Toast } from '@nutui/nutui-react-taro' +import { Image, View } from '@tarojs/components' +import { PullToRefresh } from '@nutui/nutui-react-taro' +import Taro from '@tarojs/taro' +import pxTransform from '@/utils/px-transform' const Demo1 = () => { const [list] = useState([1, 2, 3, 4, 5, 6, 7]) - const [show, SetShow] = useState(false) - const [toastMsg, SetToastMsg] = useState('') - const toastShow = (msg: any) => { - SetToastMsg(msg) - SetShow(true) - } + return ( <> { }} onRefresh={() => new Promise((resolve) => { - toastShow('😊') + Taro.showToast({ + title: '😊', + icon: 'none', + }) resolve('done') }) } @@ -26,17 +27,15 @@ const Demo1 = () => { return ( <> {(status === 'pulling' || status === 'complete') && ( - )} {(status === 'canRelease' || status === 'refreshing') && ( - )} @@ -44,26 +43,19 @@ const Demo1 = () => { }} > {list.map((item) => ( -
{item} -
+ ))}
- { - SetShow(false) - }} - /> ) } diff --git a/src/packages/pulltorefresh/demos/taro/demo2.tsx b/src/packages/pulltorefresh/demos/taro/demo2.tsx index ca97b51715..6bd9942177 100644 --- a/src/packages/pulltorefresh/demos/taro/demo2.tsx +++ b/src/packages/pulltorefresh/demos/taro/demo2.tsx @@ -1,6 +1,7 @@ import React, { useState } from 'react' import { ScrollView } from '@tarojs/components' -import { PullToRefresh, Cell, Toast } from '@nutui/nutui-react-taro' +import { Cell, PullToRefresh } from '@nutui/nutui-react-taro' +import pxTransform from '@/utils/px-transform' const Demo2 = () => { const [list] = useState([1, 2, 3, 4, 5, 6, 7]) @@ -14,7 +15,7 @@ const Demo2 = () => { return ( <> { // scrollTop > 0, PullToRefresh 不触发 touchmove 事仢。 @@ -37,14 +38,6 @@ const Demo2 = () => { ))} - { - SetShow(false) - }} - /> ) } diff --git a/src/packages/pulltorefresh/demos/taro/demo3.tsx b/src/packages/pulltorefresh/demos/taro/demo3.tsx index a10409fb27..933b3bd686 100644 --- a/src/packages/pulltorefresh/demos/taro/demo3.tsx +++ b/src/packages/pulltorefresh/demos/taro/demo3.tsx @@ -1,21 +1,21 @@ import React, { useState } from 'react' -import { PullToRefresh, Toast } from '@nutui/nutui-react-taro' +import { Image, Text, View } from '@tarojs/components' +import { PullToRefresh } from '@nutui/nutui-react-taro' +import Taro from '@tarojs/taro' +import pxTransform from '@/utils/px-transform' const Demo1 = () => { const [list] = useState([1, 2, 3, 4, 5, 6, 7]) - const [show, SetShow] = useState(false) - const [toastMsg, SetToastMsg] = useState('') - const toastShow = (msg: any) => { - SetToastMsg(msg) - SetShow(true) - } return ( <> new Promise((resolve) => { - toastShow('😊') + Taro.showToast({ + title: '😊', + icon: 'none', + }) resolve('done') }) } @@ -23,16 +23,14 @@ const Demo1 = () => { return ( <> {(status === 'pulling' || status === 'complete') && ( - )} {(status === 'canRelease' || status === 'refreshing') && ( - )} @@ -41,26 +39,19 @@ const Demo1 = () => { }} > {list.map((item) => ( -
- {item} -
+ {item} + ))}
- { - SetShow(false) - }} - /> ) } diff --git a/src/packages/pulltorefresh/pulltorefresh.harmony.css b/src/packages/pulltorefresh/pulltorefresh.harmony.css index 4826f1901f..05f98074bf 100644 --- a/src/packages/pulltorefresh/pulltorefresh.harmony.css +++ b/src/packages/pulltorefresh/pulltorefresh.harmony.css @@ -8,7 +8,7 @@ bottom: 0; left: 0; width: 100%; - color: #1A1A1A; + color: #1a1a1a; display: flex; flex-direction: column; justify-content: center; @@ -19,6 +19,18 @@ height: 26px; margin-bottom: 4px; } +.nut-pulltorefresh-primary { + background: #ff0f23; +} +.nut-pulltorefresh-primary-content { + color: rgba(255, 255, 255, 0.9); +} +.nut-pulltorefresh-primary-head-content { + color: rgba(255, 255, 255, 0.9); +} +.nut-pulltorefresh-primary-status-text { + color: #ffffff; +} [dir=rtl] .nut-pulltorefresh-head-content, .nut-rtl .nut-pulltorefresh-head-content { diff --git a/src/packages/pulltorefresh/pulltorefresh.scss b/src/packages/pulltorefresh/pulltorefresh.scss index 565c2466c6..21ee71381c 100644 --- a/src/packages/pulltorefresh/pulltorefresh.scss +++ b/src/packages/pulltorefresh/pulltorefresh.scss @@ -25,15 +25,20 @@ &-primary { background: $pulltorefresh-color-primary; - .nut-pulltorefresh-content { + + &-content { color: $color-text-dark; } - .nut-pulltorefresh-head { + &-head { &-content { color: $color-text-dark; } } + + &-status-text { + color: $white; + } } } diff --git a/src/packages/pulltorefresh/pulltorefresh.taro.tsx b/src/packages/pulltorefresh/pulltorefresh.taro.tsx index 7fbbc7749f..2b27c896e1 100644 --- a/src/packages/pulltorefresh/pulltorefresh.taro.tsx +++ b/src/packages/pulltorefresh/pulltorefresh.taro.tsx @@ -9,6 +9,8 @@ import { rubberbandIfOutOfBounds } from '@/utils/rubberband' import { sleep } from '@/utils/sleep' import { BasicComponent, ComponentDefaults } from '@/utils/typings' import { PullToRefreshType } from './types' +import pxTransform from '@/utils/px-transform' +import { harmonyAndRn } from '@/utils/platform-taro' export type PullStatus = 'pulling' | 'canRelease' | 'refreshing' | 'complete' @@ -73,8 +75,10 @@ export const PullToRefresh: FunctionComponent> = ( const renderIcons = (status: string) => { return ( <> - {(status === 'pulling' || status === 'complete') && } - {(status === 'canRelease' || status === 'refreshing') && } + {(status === 'pulling' || status === 'complete') && + (!harmonyAndRn() ? : null)} + {(status === 'canRelease' || status === 'refreshing') && + (!harmonyAndRn() ? : null)} ) } @@ -98,6 +102,9 @@ export const PullToRefresh: FunctionComponent> = ( touch.start(e as any) } const handleTouchMove: any = (e: ITouchEvent) => { + e.stopPropagation() + e.preventDefault() + if (props.scrollTop > 0) { return } @@ -121,6 +128,7 @@ export const PullToRefresh: FunctionComponent> = ( setStatus(height > threshold ? 'canRelease' : 'pulling') } } + async function doRefresh() { setHeight(headHeight) setStatus('refreshing') @@ -138,6 +146,7 @@ export const PullToRefresh: FunctionComponent> = ( setHeight(0) setStatus('pulling') } + const handleTouchEnd: any = () => { pullingRef.current = false if (status === 'canRelease') { @@ -153,7 +162,7 @@ export const PullToRefresh: FunctionComponent> = ( const isAndroidWeApp = Taro.getSystemInfoSync().platform === 'android' && Taro.getEnv() === 'WEAPP' const springStyles = { - height: `${height}px`, + height: pxTransform(height), ...(!pullingRef.current || isAndroidWeApp ? { transition: 'height .3s ease' } : {}), @@ -166,16 +175,46 @@ export const PullToRefresh: FunctionComponent> = ( onTouchMove={handleTouchMove} onTouchEnd={handleTouchEnd} > - + - {renderStatusIcon()} - {renderStatusText()} + + {renderStatusIcon()} + + + {renderStatusText()} + - {props.children} + + {props.children} + ) } diff --git a/src/packages/pulltorefresh/pulltorefresh.tsx b/src/packages/pulltorefresh/pulltorefresh.tsx index b747b5d547..b6a73558d8 100644 --- a/src/packages/pulltorefresh/pulltorefresh.tsx +++ b/src/packages/pulltorefresh/pulltorefresh.tsx @@ -212,16 +212,46 @@ export const PullToRefresh: FunctionComponent> = ( return ( - +
-
{renderStatusIcon()}
-
{renderStatusText()}
+
+ {renderStatusIcon()} +
+
+ {renderStatusText()} +
-
{props.children}
+
+ {props.children} +
) } From 819f2d80334d355213220ece87e5214aca437e31 Mon Sep 17 00:00:00 2001 From: oasis-cloud Date: Wed, 12 Jun 2024 16:18:29 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20rn=20=E7=8E=AF=E5=A2=83=E4=B8=8B=20t?= =?UTF-8?q?ouchmove=20=E5=92=8C=20touchend=20=E4=B8=8D=E7=94=9F=E6=95=88?= =?UTF-8?q?=EF=BC=8C=E6=89=80=E4=BB=A5=E6=89=8D=E7=94=A8=E6=A8=A1=E6=8B=9F?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=BC=8F=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/packages/pulltorefresh/pulltorefresh.taro.tsx | 15 +++++++++++---- src/utils/typings.ts | 2 ++ src/utils/use-touch.ts | 15 ++++++++++----- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/packages/pulltorefresh/pulltorefresh.taro.tsx b/src/packages/pulltorefresh/pulltorefresh.taro.tsx index 2b27c896e1..e4f77cbbc2 100644 --- a/src/packages/pulltorefresh/pulltorefresh.taro.tsx +++ b/src/packages/pulltorefresh/pulltorefresh.taro.tsx @@ -7,10 +7,10 @@ import { useConfig } from '@/packages/configprovider/index.taro' import { useTouch } from '@/utils/use-touch' import { rubberbandIfOutOfBounds } from '@/utils/rubberband' import { sleep } from '@/utils/sleep' -import { BasicComponent, ComponentDefaults } from '@/utils/typings' +import { BasicComponent, ComponentDefaults, Timeout } from '@/utils/typings' import { PullToRefreshType } from './types' import pxTransform from '@/utils/px-transform' -import { harmonyAndRn } from '@/utils/platform-taro' +import { harmonyAndRn, rn } from '@/utils/platform-taro' export type PullStatus = 'pulling' | 'canRelease' | 'refreshing' | 'complete' @@ -44,6 +44,7 @@ const defaultProps = { scrollTop: 0, onRefresh: () => {}, } as PullToRefreshProps + export const PullToRefresh: FunctionComponent> = ( p ) => { @@ -71,6 +72,7 @@ export const PullToRefresh: FunctionComponent> = ( const pullingRef = useRef(false) const [status, setStatus] = useState('pulling') const [height, setHeight] = useState(0) + const timer = useRef() const renderIcons = (status: string) => { return ( @@ -102,9 +104,7 @@ export const PullToRefresh: FunctionComponent> = ( touch.start(e as any) } const handleTouchMove: any = (e: ITouchEvent) => { - e.stopPropagation() e.preventDefault() - if (props.scrollTop > 0) { return } @@ -127,6 +127,12 @@ export const PullToRefresh: FunctionComponent> = ( ) setStatus(height > threshold ? 'canRelease' : 'pulling') } + clearTimeout(timer.current) + if (rn()) { + timer.current = setTimeout(() => { + handleTouchEnd() + }, 300) + } } async function doRefresh() { @@ -148,6 +154,7 @@ export const PullToRefresh: FunctionComponent> = ( } const handleTouchEnd: any = () => { + console.log('yyyyyyyyyyyyyy') pullingRef.current = false if (status === 'canRelease') { doRefresh() diff --git a/src/utils/typings.ts b/src/utils/typings.ts index a995f67e65..e5d09d5cb6 100644 --- a/src/utils/typings.ts +++ b/src/utils/typings.ts @@ -11,3 +11,5 @@ export const ComponentDefaults = { className: '', style: {}, } + +export type Timeout = ReturnType diff --git a/src/utils/use-touch.ts b/src/utils/use-touch.ts index a43b6a6314..c5c4bbed83 100644 --- a/src/utils/use-touch.ts +++ b/src/utils/use-touch.ts @@ -41,23 +41,28 @@ export function useTouch() { last.current = false } + const getTouch = (event: React.TouchEvent) => { + const touch = event.touches ? event.touches[0] : event.nativeEvent + return touch as React.Touch + } + const getX = (touch: React.Touch) => { - return touch.screenX || touch.clientX + return touch.screenX || touch.clientX || touch.pageX } const getY = (touch: React.Touch) => { - return touch.screenY || touch.clientY + return touch.screenY || touch.clientY || touch.pageY } const start = (event: React.TouchEvent) => { reset() touchTime.current = Date.now() - startX.current = getX(event.touches[0]) - startY.current = getY(event.touches[0]) + startX.current = getX(getTouch(event)) + startY.current = getY(getTouch(event)) } const move = (event: React.TouchEvent) => { - const touch = event.touches[0] + const touch = getTouch(event) const clientX = getX(touch) const clientY = getY(touch) // Fix: Safari back will set clientX to negative number From 263eba90f297293cf51963002e927f8b7d78b269 Mon Sep 17 00:00:00 2001 From: oasis-cloud Date: Tue, 23 Jul 2024 14:34:45 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E6=94=B9=E6=88=90=E7=81=B0=E8=89=B2?= =?UTF-8?q?=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/packages/pulltorefresh/demos/taro/demo1.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/packages/pulltorefresh/demos/taro/demo1.tsx b/src/packages/pulltorefresh/demos/taro/demo1.tsx index e36b9d09b8..efabca17ea 100644 --- a/src/packages/pulltorefresh/demos/taro/demo1.tsx +++ b/src/packages/pulltorefresh/demos/taro/demo1.tsx @@ -29,13 +29,13 @@ const Demo1 = () => { {(status === 'pulling' || status === 'complete') && ( )} {(status === 'canRelease' || status === 'refreshing') && ( )}