From 07ec3efbcaf669de7ccde4421c1112bfd23675d6 Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Tue, 1 Nov 2022 01:24:10 -0400 Subject: [PATCH] fix: improved PTR scrolling performance (#3095) --- src/components/PullToRefresh/index.tsx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/components/PullToRefresh/index.tsx b/src/components/PullToRefresh/index.tsx index ce92ea605..dd782dbed 100644 --- a/src/components/PullToRefresh/index.tsx +++ b/src/components/PullToRefresh/index.tsx @@ -1,15 +1,17 @@ import { RefreshIcon } from '@heroicons/react/outline'; -import Router from 'next/router'; +import { useRouter } from 'next/router'; import PR from 'pulltorefreshjs'; import { useEffect } from 'react'; import ReactDOMServer from 'react-dom/server'; -const PullToRefresh: React.FC = () => { +const PullToRefresh = () => { + const router = useRouter(); + useEffect(() => { PR.init({ mainElement: '#pull-to-refresh', onRefresh() { - Router.reload(); + router.reload(); }, iconArrow: ReactDOMServer.renderToString(
@@ -28,11 +30,14 @@ const PullToRefresh: React.FC = () => { instructionsReleaseToRefresh: ReactDOMServer.renderToString(
), instructionsRefreshing: ReactDOMServer.renderToString(
), distReload: 60, + distIgnore: 15, + shouldPullToRefresh: () => + !window.scrollY && document.body.style.overflow !== 'hidden', }); return () => { PR.destroyAll(); }; - }, []); + }, [router]); return
; };