diff --git a/materialious/package-lock.json b/materialious/package-lock.json index 31711515..8e58d9f7 100644 --- a/materialious/package-lock.json +++ b/materialious/package-lock.json @@ -12,7 +12,7 @@ "human-number": "^2.0.4", "media-icons": "^0.10.0", "sponsorblock-api": "^0.2.4", - "svelte-infinite-scroll": "^2.0.1", + "svelte-infinite-loading": "^1.3.8", "svelte-persisted-store": "^0.9.1", "vidstack": "^1.11.4" }, @@ -7143,10 +7143,10 @@ "svelte": "^3.19.0 || ^4.0.0" } }, - "node_modules/svelte-infinite-scroll": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/svelte-infinite-scroll/-/svelte-infinite-scroll-2.0.1.tgz", - "integrity": "sha512-goTHCfOHRDCs8C5MeSuIc6LlAQ8zVQ+M4Y3LyvrDjx5rqSSxSrdCuQwIyWYNcO6j6/mnqRro3QB64ClBzfn+Wg==" + "node_modules/svelte-infinite-loading": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/svelte-infinite-loading/-/svelte-infinite-loading-1.3.8.tgz", + "integrity": "sha512-hn4o848LKd2Q+M11hiMWnfFxM1GHKVDi92HPZ1FYvfed4bEeRZL+QvFAQzhy1SACq6Si0CAJcQFUZpIYmAEnpQ==" }, "node_modules/svelte-persisted-store": { "version": "0.9.1", diff --git a/materialious/package.json b/materialious/package.json index 915ee5bb..bc11d80b 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -39,7 +39,7 @@ "human-number": "^2.0.4", "media-icons": "^0.10.0", "sponsorblock-api": "^0.2.4", - "svelte-infinite-scroll": "^2.0.1", + "svelte-infinite-loading": "^1.3.8", "svelte-persisted-store": "^0.9.1", "vidstack": "^1.11.4" } diff --git a/materialious/src/routes/+layout.svelte b/materialious/src/routes/+layout.svelte index a066b9f7..6c17fe38 100644 --- a/materialious/src/routes/+layout.svelte +++ b/materialious/src/routes/+layout.svelte @@ -535,7 +535,7 @@ {/each} -
+
diff --git a/materialious/src/routes/+page.svelte b/materialious/src/routes/+page.svelte index 7869de7e..3946b935 100644 --- a/materialious/src/routes/+page.svelte +++ b/materialious/src/routes/+page.svelte @@ -1,6 +1,6 @@ @@ -66,3 +65,5 @@ + + diff --git a/materialious/src/routes/playlist/[slug]/+page.svelte b/materialious/src/routes/playlist/[slug]/+page.svelte index caec99a7..3c76517f 100644 --- a/materialious/src/routes/playlist/[slug]/+page.svelte +++ b/materialious/src/routes/playlist/[slug]/+page.svelte @@ -4,7 +4,7 @@ import VideoList from '$lib/VideoList.svelte'; import { cleanNumber } from '$lib/misc.js'; import { onMount } from 'svelte'; - import { activePage } from '../../../store.js'; + import { activePage } from '../../../store'; export let data; diff --git a/materialious/src/routes/search/[slug]/+page.svelte b/materialious/src/routes/search/[slug]/+page.svelte index 425a7d7d..ed4ed92f 100644 --- a/materialious/src/routes/search/[slug]/+page.svelte +++ b/materialious/src/routes/search/[slug]/+page.svelte @@ -4,7 +4,7 @@ import ChannelThumbnail from '$lib/ChannelThumbnail.svelte'; import PlaylistThumbnail from '$lib/PlaylistThumbnail.svelte'; import Thumbnail from '$lib/Thumbnail.svelte'; - import { onDestroy, onMount } from 'svelte'; + import InfiniteLoading, { type InfiniteEvent } from 'svelte-infinite-loading'; import { activePage } from '../../../store'; export let data; @@ -20,24 +20,20 @@ document.location.href = $page.url.href; } - async function handleScroll() { - const { scrollTop, clientHeight, scrollHeight } = document.documentElement; - if (scrollTop + clientHeight >= scrollHeight - 5) { - currentPage += 1; - search = [ - ...search, - ...(await getSearch(data.slug, { page: currentPage.toString(), type: data.searchType })) - ]; + async function loadMore(event: InfiniteEvent) { + currentPage++; + const newSearch = await getSearch(data.slug, { + page: currentPage.toString(), + type: data.searchType + }); + + if (newSearch.length === 0) { + event.detail.complete(); + } else { + search = [...search, ...newSearch]; + event.detail.loaded(); } } - - onMount(() => { - window.addEventListener('scroll', handleScroll); - }); - - onDestroy(() => { - window.removeEventListener('scroll', handleScroll); - });
@@ -91,3 +87,5 @@ {/each}
+ + diff --git a/materialious/src/routes/subscriptions/+page.svelte b/materialious/src/routes/subscriptions/+page.svelte index d93855a2..81020910 100644 --- a/materialious/src/routes/subscriptions/+page.svelte +++ b/materialious/src/routes/subscriptions/+page.svelte @@ -1,32 +1,28 @@ + + diff --git a/materialious/src/routes/trending/+page.svelte b/materialious/src/routes/trending/+page.svelte index 6bc28178..ca6f269b 100644 --- a/materialious/src/routes/trending/+page.svelte +++ b/materialious/src/routes/trending/+page.svelte @@ -1,6 +1,6 @@