diff --git a/src/components/InfiniteScrollSentinel.svelte b/src/components/InfiniteScrollSentinel.svelte new file mode 100644 index 000000000..1e94def69 --- /dev/null +++ b/src/components/InfiniteScrollSentinel.svelte @@ -0,0 +1,44 @@ + + + diff --git a/src/components/ScrollArea.svelte b/src/components/ScrollArea.svelte index ec7f678bc..93b65a8f3 100644 --- a/src/components/ScrollArea.svelte +++ b/src/components/ScrollArea.svelte @@ -1,7 +1,21 @@ + + { - const el = instance.elements().target; - if (el.scrollTop + el.clientHeight >= el.scrollHeight / 2) { - onScrollHalf(); - } - }, - } - : undefined} + events={{ + initialized: instance => { + viewport = instance.elements().viewport; + scrollHalfHandler?.(instance); + }, + scroll: scrollHalfHandler, + updated: scrollHalfHandler, + }} defer> {@render children()}