Bring back intersection observer for 'show more'

Sometimes the scroll thing doesn't really work
This commit is contained in:
Lim Chee Aun 2023-02-24 01:27:46 +08:00
parent 2ced21c9dd
commit cbb09e1b5d

View file

@ -1,5 +1,6 @@
import { useEffect, useRef, useState } from 'preact/hooks'; import { useEffect, useRef, useState } from 'preact/hooks';
import { useHotkeys } from 'react-hotkeys-hook'; import { useHotkeys } from 'react-hotkeys-hook';
import { InView } from 'react-intersection-observer';
import { useDebouncedCallback } from 'use-debounce'; import { useDebouncedCallback } from 'use-debounce';
import useInterval from '../utils/useInterval'; import useInterval from '../utils/useInterval';
@ -376,6 +377,13 @@ function Timeline({
</ul> </ul>
{uiState === 'default' && {uiState === 'default' &&
(showMore ? ( (showMore ? (
<InView
onChange={(inView) => {
if (inView) {
loadItems();
}
}}
>
<button <button
type="button" type="button"
class="plain block" class="plain block"
@ -384,6 +392,7 @@ function Timeline({
> >
Show more&hellip; Show more&hellip;
</button> </button>
</InView>
) : ( ) : (
<p class="ui-state insignificant">The end.</p> <p class="ui-state insignificant">The end.</p>
))} ))}