ScrollTopButton: delay adding the scroll listener so the feed doesn't jump when navigating back

environments/review-fix-tl-jum-epo4gd/deployments/4079
Alex Gleason 2023-10-02 13:25:59 -05:00
rodzic 74c231b59b
commit 7d0c699fe3
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 7211D1F99744FBB7
1 zmienionych plików z 7 dodań i 2 usunięć

Wyświetl plik

@ -32,7 +32,7 @@ const ScrollTopButton: React.FC<IScrollTopButton> = ({
// Whether we are scrolled past the `threshold`.
const [scrolled, setScrolled] = useState<boolean>(false);
// Whether we are scrolled above the `autoloadThreshold`.
const [scrolledTop, setScrolledTop] = useState<boolean>(true);
const [scrolledTop, setScrolledTop] = useState<boolean>(false);
const autoload = settings.get('autoloadTimelines') === true;
const visible = count > 0 && scrolled;
@ -65,7 +65,12 @@ const ScrollTopButton: React.FC<IScrollTopButton> = ({
}, [onClick]);
useEffect(() => {
window.addEventListener('scroll', handleScroll);
// Delay adding the scroll listener so navigating back doesn't
// unload feed items before the feed is rendered.
setTimeout(() => {
window.addEventListener('scroll', handleScroll);
handleScroll();
}, 250);
return () => {
window.removeEventListener('scroll', handleScroll);