1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-24 20:36:40 +07:00

disabled short swipes on node images block

This commit is contained in:
Fedor Katurov 2022-07-14 12:16:56 +07:00
parent 1f9b9a3df0
commit 7a9f23e91d

View file

@ -1,4 +1,4 @@
import React, { FC, useCallback, useEffect, useState } from 'react'; import React, { FC, useCallback, useEffect, useMemo, useState } from 'react';
import { observer } from 'mobx-react-lite'; import { observer } from 'mobx-react-lite';
import SwiperCore, { Keyboard, Navigation, Pagination, SwiperOptions } from 'swiper'; import SwiperCore, { Keyboard, Navigation, Pagination, SwiperOptions } from 'swiper';
@ -24,6 +24,8 @@ const breakpoints: SwiperOptions['breakpoints'] = {
}, },
}; };
const pagination = { type: 'fraction' as const };
const NodeImageSwiperBlock: FC<IProps> = observer(({ node }) => { const NodeImageSwiperBlock: FC<IProps> = observer(({ node }) => {
const [controlledSwiper, setControlledSwiper] = useState<SwiperClass | undefined>(undefined); const [controlledSwiper, setControlledSwiper] = useState<SwiperClass | undefined>(undefined);
const showPhotoSwiper = useImageModal(); const showPhotoSwiper = useImageModal();
@ -31,6 +33,14 @@ const NodeImageSwiperBlock: FC<IProps> = observer(({ node }) => {
const images = useNodeImages(node); const images = useNodeImages(node);
const keyboard = useMemo(
() => ({
enabled: !isModalActive,
onlyInViewport: true,
}),
[isModalActive]
);
const updateSwiper = useCallback(() => { const updateSwiper = useCallback(() => {
if (!controlledSwiper) return; if (!controlledSwiper) return;
@ -90,7 +100,7 @@ const NodeImageSwiperBlock: FC<IProps> = observer(({ node }) => {
slidesPerView="auto" slidesPerView="auto"
onSwiper={setControlledSwiper} onSwiper={setControlledSwiper}
breakpoints={breakpoints} breakpoints={breakpoints}
pagination={{ type: 'fraction' }} pagination={pagination}
centeredSlides centeredSlides
observeSlideChildren observeSlideChildren
observeParents observeParents
@ -98,14 +108,12 @@ const NodeImageSwiperBlock: FC<IProps> = observer(({ node }) => {
resizeObserver resizeObserver
watchOverflow watchOverflow
updateOnImagesReady updateOnImagesReady
keyboard={{ keyboard={keyboard}
enabled: !isModalActive,
onlyInViewport: true,
}}
grabCursor grabCursor
autoHeight autoHeight
zoom zoom
navigation navigation
shortSwipes={false}
> >
{images.map((file, i) => ( {images.map((file, i) => (
<SwiperSlide className={styles.slide} key={file.id}> <SwiperSlide className={styles.slide} key={file.id}>