From ecf1585d74c44954720acddce02d3827c93a06df Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Sat, 4 Nov 2023 17:49:48 +0100 Subject: init_posts(): load more posts on window resize (#5815) * init_posts(): load more posts on window resize Fixes: 1. Open FreshRSS in a shorter window 2. Resize to be much longer 3. Half the window remains empty This is most obviously a problem on vertical monitors. * Address comments * blah blah * typo --- p/scripts/main.js | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'p/scripts') diff --git a/p/scripts/main.js b/p/scripts/main.js index 42d7aeef4..4ddafb2bd 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -735,20 +735,23 @@ function onScroll() { } } +let lastScroll = 0; // Throttle +let timerId = 0; +function debouncedOnScroll() { + clearTimeout(timerId); + if (lastScroll + 500 < Date.now()) { + lastScroll = Date.now(); + onScroll(); + } else { + timerId = setTimeout(onScroll, 500); + } +} + function init_posts() { if (context.auto_load_more || context.auto_mark_scroll || context.auto_remove_article) { box_to_follow = context.current_view === 'global' ? document.getElementById('panel') : document.scrollingElement; - let lastScroll = 0; // Throttle - let timerId = 0; - (box_to_follow === document.scrollingElement ? window : box_to_follow).onscroll = function () { - clearTimeout(timerId); - if (lastScroll + 500 < Date.now()) { - lastScroll = Date.now(); - onScroll(); - } else { - timerId = setTimeout(onScroll, 500); - } - }; + (box_to_follow === document.scrollingElement ? window : box_to_follow).onscroll = debouncedOnScroll; + window.addEventListener('resize', debouncedOnScroll); onScroll(); } -- cgit v1.2.3