From 0066736527220d9ed81835847fb3801666592e86 Mon Sep 17 00:00:00 2001 From: bytedream <bytedream@protonmail.com> Date: Thu, 28 Nov 2024 02:31:20 +0100 Subject: [PATCH] probably wasn't overfetching at all --- .../PaginationTable/PaginationTableBody.svelte | 1 - src/routes/admin/reports/+page.svelte | 17 ++++++++++------- src/routes/admin/users/+page.svelte | 13 ++++++++++--- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/lib/components/PaginationTable/PaginationTableBody.svelte b/src/lib/components/PaginationTable/PaginationTableBody.svelte index 5dc1098..a2daf84 100644 --- a/src/lib/components/PaginationTable/PaginationTableBody.svelte +++ b/src/lib/components/PaginationTable/PaginationTableBody.svelte @@ -1,6 +1,5 @@ <script lang="ts"> import { onMount, tick } from 'svelte'; - import { sleep } from '$lib/components/utils'; export let onUpdate: () => Promise<any> = Promise.resolve; diff --git a/src/routes/admin/reports/+page.svelte b/src/routes/admin/reports/+page.svelte index 7f38b7b..dda7fe1 100644 --- a/src/routes/admin/reports/+page.svelte +++ b/src/routes/admin/reports/+page.svelte @@ -25,17 +25,20 @@ let reportFilter = { draft: false, status: null, reporter: null, reported: null }; let activeReport: typeof Report.prototype.dataValues | null = null; - async function fetchReports( - filter?: typeof reportFilter | { hash: string } - ): Promise<{ reports: typeof reports; count: number }> { + async function fetchReports(extendedFilter?: { + hash?: string; + limit?: number; + from?: number; + }): Promise<{ reports: typeof reports; count: number }> { if (!browser) return { reports: [], count: 0 }; const response = await fetch(`${env.PUBLIC_BASE_PATH}/admin/reports`, { method: 'POST', body: JSON.stringify({ - ...(filter ?? reportFilter), - limit: reportsPerRequest, - from: reports.length + ...reportFilter, + limit: extendedFilter?.limit ?? reportsPerRequest, + from: extendedFilter?.from ?? reports.length, + hash: extendedFilter?.hash }) }); @@ -92,7 +95,7 @@ let saveActiveReportChangesModal: HTMLDialogElement; let newReportModal: HTMLDialogElement; - $: if (reportFilter) fetchReports().then((r) => (reports = r.reports)); + $: if (reportFilter) fetchReports({ from: 0 }).then((r) => (reports = r.reports)); </script> <div class="h-full flex flex-row"> diff --git a/src/routes/admin/users/+page.svelte b/src/routes/admin/users/+page.svelte index 990abf1..d403973 100644 --- a/src/routes/admin/users/+page.svelte +++ b/src/routes/admin/users/+page.svelte @@ -22,14 +22,21 @@ let userTableContainerElement: HTMLDivElement; let newUserModal: HTMLDialogElement; - async function fetchUsers(): Promise<typeof users> { + async function fetchUsers(extendedFilter?: { + limit?: number; + from?: number; + }): Promise<typeof users> { if (!browser) return []; if (userTableContainerElement) userTableContainerElement.scrollTop = 0; const response = await fetch(`${env.PUBLIC_BASE_PATH}/admin/users`, { method: 'POST', - body: JSON.stringify({ ...userFilter, limit: usersPerRequest, from: users.length }) + body: JSON.stringify({ + ...userFilter, + limit: extendedFilter?.limit ?? usersPerRequest, + from: extendedFilter?.from ?? users.length + }) }); return await response.json(); @@ -58,7 +65,7 @@ } } - $: if (userFilter) fetchUsers().then((u) => (users = u)); + $: if (userFilter) fetchUsers({ from: 0 }).then((u) => (users = u)); </script> <div class="h-full flex flex-col overflow-hidden">