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:
parent
1f9b9a3df0
commit
7a9f23e91d
1 changed files with 14 additions and 6 deletions
|
@ -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}>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue