probably wasn't overfetching at all

This commit is contained in:
bytedream 2024-11-28 02:31:20 +01:00
parent 750d1b43d7
commit 0066736527
3 changed files with 20 additions and 11 deletions
src
lib/components/PaginationTable
routes/admin

@ -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;

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

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