From d0989ac58b70eaa09a1030b8805a7b9b6672d2a8 Mon Sep 17 00:00:00 2001 From: Fedor Katurov Date: Mon, 21 Jun 2021 14:00:21 +0700 Subject: [PATCH] #38 fixed preloader --- .../node/NodeImageSwiperBlock/index.tsx | 22 ++++++++++++++----- .../NodeImageSwiperBlock/styles.module.scss | 7 ++++++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/components/node/NodeImageSwiperBlock/index.tsx b/src/components/node/NodeImageSwiperBlock/index.tsx index 29278f6b..c44f3cb1 100644 --- a/src/components/node/NodeImageSwiperBlock/index.tsx +++ b/src/components/node/NodeImageSwiperBlock/index.tsx @@ -5,18 +5,20 @@ import { Swiper, SwiperSlide } from 'swiper/react'; import 'swiper/swiper.scss'; import 'swiper/components/pagination/pagination.scss'; import 'swiper/components/navigation/navigation.scss'; +import 'swiper/components/lazy/lazy.min.css'; import styles from './styles.module.scss'; -import SwiperCore, { Keyboard, Navigation, Pagination, SwiperOptions } from 'swiper'; +import SwiperCore, { Keyboard, Navigation, Pagination, SwiperOptions, Lazy } from 'swiper'; import { useNodeImages } from '~/utils/hooks/node/useNodeImages'; -import { getURL } from '~/utils/dom'; -import { PRESETS } from '~/constants/urls'; import SwiperClass from 'swiper/types/swiper-class'; import { modalShowPhotoswipe } from '~/redux/modal/actions'; import { useDispatch } from 'react-redux'; +import classNames from 'classnames'; +import { getURL } from '~/utils/dom'; +import { PRESETS } from '~/constants/urls'; -SwiperCore.use([Navigation, Pagination, Keyboard]); +SwiperCore.use([Lazy, Navigation, Pagination, Keyboard]); interface IProps extends INodeComponentProps {} @@ -78,6 +80,7 @@ const NodeImageSwiperBlock: FC = ({ node }) => { watchOverflow updateOnImagesReady onInit={resetSwiper} + lazy keyboard={{ enabled: true, onlyInViewport: false, @@ -90,12 +93,19 @@ const NodeImageSwiperBlock: FC = ({ node }) => { {images.map(file => ( {node.title} + +
))} diff --git a/src/components/node/NodeImageSwiperBlock/styles.module.scss b/src/components/node/NodeImageSwiperBlock/styles.module.scss index 6f985e9d..c1c82fb9 100644 --- a/src/components/node/NodeImageSwiperBlock/styles.module.scss +++ b/src/components/node/NodeImageSwiperBlock/styles.module.scss @@ -98,6 +98,11 @@ border-radius: $radius; transition: box-shadow 1s; box-shadow: transparentize(black, 0.7) 0 3px 5px; + opacity: 0; + + &[src] { + opacity: 1; + } :global(.swiper-slide-active) & { box-shadow: transparentize(black, 0.9) 0 10px 5px 4px, @@ -113,3 +118,5 @@ } } +.loader { +}