From a497912049e40bd6e9a87ef354a2142bb2017057 Mon Sep 17 00:00:00 2001 From: Fedor Katurov Date: Tue, 25 Jan 2022 11:06:03 +0700 Subject: [PATCH] fixed rerendering issues on flow --- src/components/flow/FlowSwiperHero/index.tsx | 25 +++++++++++--------- src/hooks/dom/useWindowSize.ts | 2 +- src/pages/index.tsx | 2 +- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/components/flow/FlowSwiperHero/index.tsx b/src/components/flow/FlowSwiperHero/index.tsx index a203cb31..1edd7e76 100644 --- a/src/components/flow/FlowSwiperHero/index.tsx +++ b/src/components/flow/FlowSwiperHero/index.tsx @@ -1,6 +1,5 @@ import React, { FC, useCallback, useMemo, useState } from 'react'; - import classNames from 'classnames'; import SwiperCore, { Autoplay, EffectFade, Lazy, Navigation } from 'swiper'; import { Swiper, SwiperSlide } from 'swiper/react'; @@ -22,6 +21,18 @@ interface Props { heroes: IFlowNode[]; } +const autoplay = { + delay: 3000, + pauseOnMouseEnter: false, + stopOnLastSlide: false, + disableOnInteraction: false, +}; + +const lazy = { + loadPrevNextAmount: 5, + checkInView: false, +}; + export const FlowSwiperHero: FC = ({ heroes }) => { const { innerWidth } = useWindowSize(); const { push } = useNavigation(); @@ -104,18 +115,10 @@ export const FlowSwiperHero: FC = ({ heroes }) => { effect="fade" speed={3000} className={styles.swiper} - lazy={{ - loadPrevNextAmount: 5, - checkInView: false, - }} + lazy={lazy} loop slidesPerView={1} - autoplay={{ - delay: 3000, - pauseOnMouseEnter: false, - stopOnLastSlide: false, - disableOnInteraction: false, - }} + autoplay={autoplay} runCallbacksOnInit onSwiper={setControlledSwiper} onSlidesLengthChange={onIndexChange} diff --git a/src/hooks/dom/useWindowSize.ts b/src/hooks/dom/useWindowSize.ts index 36108525..b13e1668 100644 --- a/src/hooks/dom/useWindowSize.ts +++ b/src/hooks/dom/useWindowSize.ts @@ -14,7 +14,7 @@ export const useWindowSize = () => { window.addEventListener('resize', onResize); return () => window.removeEventListener('resize', onResize); - }); + }, []); return size; }; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index bae117ea..4185625e 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -10,7 +10,7 @@ import { FlowLayout } from '~/layouts/FlowLayout'; import { FlowProvider } from '~/utils/providers/FlowProvider'; import { getPageTitle } from '~/utils/ssr/getPageTitle'; -export const getStaticProps = async () => { +export const getStaticProps = async ctx => { const fallbackData = await getNodeDiff({ start: new Date().toISOString(), end: new Date().toISOString(),