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">