Merge branch 'autoload-fix' into 'develop'

ScrollTopButton: fix autoloading timelines

See merge request soapbox-pub/soapbox-fe!1584
environments/review-develop-3zknud/deployments/419
Alex Gleason 2 years ago
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…
Cancel
Save