Merge branch 'autoload-fix' into 'develop'
ScrollTopButton: fix autoloading timelines See merge request soapbox-pub/soapbox-fe!1584
This commit is contained in:
commit
2a7fd15717
|
@ -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', {
|
||||||
|
|
Loading…
Reference in New Issue