|
|
@ -34,14 +34,20 @@ const ScrollTopButton: React.FC<IScrollTopButton> = ({
|
|
|
|
const [scrolled, setScrolled] = useState<boolean>(false);
|
|
|
|
const [scrolled, setScrolled] = useState<boolean>(false);
|
|
|
|
const autoload = settings.get('autoloadTimelines') === true;
|
|
|
|
const autoload = settings.get('autoloadTimelines') === true;
|
|
|
|
|
|
|
|
|
|
|
|
const handleScroll = useCallback(throttle(() => {
|
|
|
|
const getScrollTop = (): number => {
|
|
|
|
const { scrollTop } = (document.scrollingElement || document.documentElement);
|
|
|
|
return (document.scrollingElement || document.documentElement).scrollTop;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
if (autoload && scrollTop <= autoloadThreshold) {
|
|
|
|
const maybeUnload = () => {
|
|
|
|
|
|
|
|
if (autoload && getScrollTop() <= autoloadThreshold) {
|
|
|
|
onClick();
|
|
|
|
onClick();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
if (scrollTop > threshold) {
|
|
|
|
const handleScroll = useCallback(throttle(() => {
|
|
|
|
|
|
|
|
maybeUnload();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (getScrollTop() > threshold) {
|
|
|
|
setScrolled(true);
|
|
|
|
setScrolled(true);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
setScrolled(false);
|
|
|
|
setScrolled(false);
|
|
|
@ -65,6 +71,10 @@ const ScrollTopButton: React.FC<IScrollTopButton> = ({
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}, []);
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
|
|
|
maybeUnload();
|
|
|
|
|
|
|
|
}, [count]);
|
|
|
|
|
|
|
|
|
|
|
|
const visible = count > 0 && scrolled;
|
|
|
|
const visible = count > 0 && scrolled;
|
|
|
|
|
|
|
|
|
|
|
|
const classes = classNames('left-1/2 -translate-x-1/2 fixed top-20 z-50', {
|
|
|
|
const classes = classNames('left-1/2 -translate-x-1/2 fixed top-20 z-50', {
|
|
|
|