- |
- {formatETFName(item?.etfProvider)}
+ |
+
+ {formatETFName(item?.etfProvider)}
+
|
diff --git a/src/routes/etf/etf-providers/[slug]/+page.svelte b/src/routes/etf/etf-providers/[slug]/+page.svelte
index 33c31ddb..09e1deb1 100644
--- a/src/routes/etf/etf-providers/[slug]/+page.svelte
+++ b/src/routes/etf/etf-providers/[slug]/+page.svelte
@@ -2,7 +2,7 @@
import { goto } from '$app/navigation';
import { abbreviateNumber, formatETFName} from '$lib/utils';
import { screenWidth, numberOfUnreadNotification } from '$lib/store';
- import InfiniteLoading from '$lib/components/InfiniteLoading.svelte';
+ import { onMount } from 'svelte';
export let data;
let rawData = data?.getETFProviderData;
@@ -18,31 +18,25 @@
) / rawData?.length;
- async function infiniteHandler({ detail: { loaded, complete } })
- {
-
- if (etfProviderData?.length === rawData?.length) {
- complete();
- }
- else {
- const nextIndex = etfProviderData?.length;
- const newElements= rawData?.slice(nextIndex, nextIndex + 5);
- etfProviderData = [...etfProviderData, ...newElements];
- loaded();
- }
+ async function handleScroll() {
+ const scrollThreshold = document.body.offsetHeight * 0.8; // 80% of the website height
+ const isBottom = window.innerHeight + window.scrollY >= scrollThreshold;
+ if (isBottom && etfProviderData?.length !== rawData?.length) {
+ const nextIndex = etfProviderData?.length;
+ const filteredNewResults = rawData?.slice(nextIndex, nextIndex + 25);
+ etfProviderData = [...etfProviderData, ...filteredNewResults];
+ }
}
- let charNumber = 20;
-
- $: {
- if ($screenWidth < 640)
- {
- charNumber = 30;
- }
- else {
- charNumber = 50;
- }
- }
+onMount(() => {
+ window.addEventListener('scroll', handleScroll);
+ return () => {
+ window.removeEventListener('scroll', handleScroll);
+ };
+})
+
+
+ $:charNumber = $screenWidth < 640 ? 20 : 30;
@@ -124,10 +118,12 @@
|