mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 21:06:42 +07:00
better image scroll on mobile devices
This commit is contained in:
parent
ff249e0107
commit
284721db67
2 changed files with 18 additions and 4 deletions
|
@ -1,4 +1,12 @@
|
||||||
import React, { FC, useMemo, useState, useEffect, useRef, useCallback } from 'react';
|
import React, {
|
||||||
|
FC,
|
||||||
|
useMemo,
|
||||||
|
useState,
|
||||||
|
useEffect,
|
||||||
|
useRef,
|
||||||
|
useCallback,
|
||||||
|
useLayoutEffect,
|
||||||
|
} from 'react';
|
||||||
import { ImageSwitcher } from '../ImageSwitcher';
|
import { ImageSwitcher } from '../ImageSwitcher';
|
||||||
import * as styles from './styles.scss';
|
import * as styles from './styles.scss';
|
||||||
import { INode } from '~/redux/types';
|
import { INode } from '~/redux/types';
|
||||||
|
@ -108,7 +116,9 @@ const NodeImageSlideBlock: FC<IProps> = ({ node, is_loading, updateLayout }) =>
|
||||||
}
|
}
|
||||||
|
|
||||||
// update layout after all manipulations
|
// update layout after all manipulations
|
||||||
return () => clearTimeout(timeout);
|
return () => {
|
||||||
|
if (timeout) clearTimeout(timeout);
|
||||||
|
};
|
||||||
}, [is_dragging, wrap, offset, heights, max_height, images, is_loading, updateLayout]);
|
}, [is_dragging, wrap, offset, heights, max_height, images, is_loading, updateLayout]);
|
||||||
|
|
||||||
const onDrag = useCallback(
|
const onDrag = useCallback(
|
||||||
|
@ -157,8 +167,8 @@ const NodeImageSlideBlock: FC<IProps> = ({ node, is_loading, updateLayout }) =>
|
||||||
const stopDragging = useCallback(() => {
|
const stopDragging = useCallback(() => {
|
||||||
if (!is_dragging) return;
|
if (!is_dragging) return;
|
||||||
|
|
||||||
normalizeOffset();
|
|
||||||
setIsDragging(false);
|
setIsDragging(false);
|
||||||
|
normalizeOffset();
|
||||||
}, [setIsDragging, is_dragging, normalizeOffset]);
|
}, [setIsDragging, is_dragging, normalizeOffset]);
|
||||||
|
|
||||||
const startDragging = useCallback(
|
const startDragging = useCallback(
|
||||||
|
@ -224,7 +234,7 @@ const NodeImageSlideBlock: FC<IProps> = ({ node, is_loading, updateLayout }) =>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<div
|
<div
|
||||||
className={styles.image_container}
|
className={classNames(styles.image_container, { [styles.is_dragging]: is_dragging })}
|
||||||
style={{
|
style={{
|
||||||
height,
|
height,
|
||||||
transform: `translate(${offset}px, 0)`,
|
transform: `translate(${offset}px, 0)`,
|
||||||
|
|
|
@ -36,6 +36,10 @@
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
border-radius: $radius $radius 0 0;
|
border-radius: $radius $radius 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.is_dragging {
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.image_wrap {
|
.image_wrap {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue