summaryrefslogtreecommitdiffstatshomepage
path: root/frontend/src/lib/toolbar/SelectItems.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/lib/toolbar/SelectItems.svelte')
-rw-r--r--frontend/src/lib/toolbar/SelectItems.svelte21
1 files changed, 11 insertions, 10 deletions
diff --git a/frontend/src/lib/toolbar/SelectItems.svelte b/frontend/src/lib/toolbar/SelectItems.svelte
index 7ff339e..68a0652 100644
--- a/frontend/src/lib/toolbar/SelectItems.svelte
+++ b/frontend/src/lib/toolbar/SelectItems.svelte
@@ -1,18 +1,19 @@
<script lang="ts">
- import { page } from '$app/stores';
- import { getPaginationContext } from '$lib/Pagination';
+ import { page } from '$app/state';
+ import { navigate, type PaginationData } from '$lib/Navigation';
- const pagination = getPaginationContext();
+ let { pagination }: { pagination: PaginationData } = $props();
- $: values = new Set([24, 48, 72, 90, 120, 150, 180, $pagination.items].sort((a, b) => a - b));
+ let values = $derived(
+ new Set([24, 48, 72, 90, 120, 150, 180, pagination.items].sort((a, b) => a - b))
+ );
+
+ function onchange(e: Event & { currentTarget: EventTarget & HTMLSelectElement }) {
+ navigate({ pagination: { items: +e.currentTarget.value } }, page.url.searchParams);
+ }
</script>
-<select
- class="btn-slate"
- bind:value={$pagination.items}
- on:change={() => $pagination.apply($page.url.searchParams)}
- title="Limit displayed items to..."
->
+<select class="btn-slate" value={pagination.items} {onchange} title="Limit displayed items to...">
{#each values as value}
<option {value}>{value}</option>
{/each}