diff --git a/src/pages/catchup.jsx b/src/pages/catchup.jsx index 35a15446..dae394d3 100644 --- a/src/pages/catchup.jsx +++ b/src/pages/catchup.jsx @@ -191,6 +191,7 @@ function Catchup() { const [posts, setPosts] = useState([]); const catchupRangeRef = useRef(); + const catchupLastRef = useRef(); const NS = useMemo(() => getCurrentAccountNS(), []); const handleCatchupClick = useCallback(async ({ duration } = {}) => { const now = Date.now(); @@ -925,7 +926,15 @@ function Catchup() { type="button" onClick={() => { if (range < RANGES[RANGES.length - 1].value) { - const duration = range * 60 * 60 * 1000; + let duration; + if ( + range === RANGES[RANGES.length - 1].value && + catchupLastRef.current?.checked + ) { + duration = Date.now() - lastCatchupEndAt; + } else { + duration = range * 60 * 60 * 1000; + } handleCatchupClick({ duration }); } else { handleCatchupClick(); @@ -935,11 +944,25 @@ function Catchup() { Catch up - {lastCatchupRange && range > lastCatchupRange && ( + {lastCatchupRange && range > lastCatchupRange ? (

Overlaps with your last catch-up

- )} + ) : range === RANGES[RANGES.length - 1].value && + lastCatchupEndAt ? ( +

+ +

+ ) : null}

Note: your instance might only show a maximum of 800 posts in