diff --git a/packages/frontend/src/lib/components/pagination/pagination.svelte b/packages/frontend/src/lib/components/pagination/pagination.svelte new file mode 100644 index 0000000..6f9682b --- /dev/null +++ b/packages/frontend/src/lib/components/pagination/pagination.svelte @@ -0,0 +1,66 @@ + + +{#if totalPages > 1} +
{$_("common.total_results", { values: { total: data.total } })}
diff --git a/packages/frontend/src/routes/models/+page.svelte b/packages/frontend/src/routes/models/+page.svelte index 3a278db..594b6c5 100644 --- a/packages/frontend/src/routes/models/+page.svelte +++ b/packages/frontend/src/routes/models/+page.svelte @@ -11,6 +11,7 @@ import Meta from "$lib/components/meta/meta.svelte"; import SexyBackground from "$lib/components/background/background.svelte"; import PageHero from "$lib/components/page-hero/page-hero.svelte"; + import Pagination from "$lib/components/pagination/pagination.svelte"; const { data } = $props(); @@ -43,22 +44,6 @@ goto(`?${params.toString()}`); } - const totalPages = $derived(Math.ceil(data.total / data.limit)); - - const pageNumbers = $derived(() => { - const pages: (number | -1)[] = []; - if (totalPages <= 7) { - for (let i = 1; i <= totalPages; i++) pages.push(i); - } else { - pages.push(1); - if (data.page > 3) pages.push(-1); - for (let i = Math.max(2, data.page - 1); i <= Math.min(totalPages - 1, data.page + 1); i++) - pages.push(i); - if (data.page < totalPages - 2) pages.push(-1); - pages.push(totalPages); - } - return pages; - }); @@ -196,38 +181,13 @@ {/if} - {#if totalPages > 1} + {#if Math.ceil(data.total / data.limit) > 1}{$_("common.total_results", { values: { total: data.total } })}
diff --git a/packages/frontend/src/routes/videos/+page.svelte b/packages/frontend/src/routes/videos/+page.svelte index 31924d7..fa59b17 100644 --- a/packages/frontend/src/routes/videos/+page.svelte +++ b/packages/frontend/src/routes/videos/+page.svelte @@ -11,6 +11,7 @@ import Meta from "$lib/components/meta/meta.svelte"; import SexyBackground from "$lib/components/background/background.svelte"; import PageHero from "$lib/components/page-hero/page-hero.svelte"; + import Pagination from "$lib/components/pagination/pagination.svelte"; import TimeAgo from "javascript-time-ago"; import { formatVideoDuration } from "$lib/utils"; @@ -46,22 +47,6 @@ goto(`?${params.toString()}`); } - const totalPages = $derived(Math.ceil(data.total / data.limit)); - - const pageNumbers = $derived(() => { - const pages: (number | -1)[] = []; - if (totalPages <= 7) { - for (let i = 1; i <= totalPages; i++) pages.push(i); - } else { - pages.push(1); - if (data.page > 3) pages.push(-1); - for (let i = Math.max(2, data.page - 1); i <= Math.min(totalPages - 1, data.page + 1); i++) - pages.push(i); - if (data.page < totalPages - 2) pages.push(-1); - pages.push(totalPages); - } - return pages; - }); @@ -256,38 +241,13 @@ {/if} - {#if totalPages > 1} + {#if Math.ceil(data.total / data.limit) > 1}{$_("common.total_results", { values: { total: data.total } })}