diff --git a/src/routes/account/+page.server.ts b/src/routes/account/+page.server.ts
index 13681ed..2c131b9 100644
--- a/src/routes/account/+page.server.ts
+++ b/src/routes/account/+page.server.ts
@@ -5,8 +5,6 @@ import { getUserSubscriptions, getUserTransactions } from '$lib/utils/supabase/a
import { requestAccountDeletion } from '$lib/utils/supabase/admin';
const transactionsPerPage = 5;
-let firstTransactionId: string;
-let hasMoreThanOnePage = false;
export const load: PageServerLoad = async ({ locals: { supabase, safeGetSession } }) => {
const { session } = await safeGetSession();
@@ -26,14 +24,16 @@ export const load: PageServerLoad = async ({ locals: { supabase, safeGetSession
const transactionsData = await getUserTransactions(session.user.id, transactionsPerPage);
const transactions = transactionsData.transactions;
- firstTransactionId = transactions[0]?.id;
- hasMoreThanOnePage = transactionsData.hasNextPage;
+ const firstTransactionId = transactions.length > 0 ? transactions[0].id : undefined;
+ const hasMoreThanOnePage = transactionsData.hasNextPage;
return {
session,
user,
subscriptions,
transactions,
+ firstTransactionId,
+ hasMoreThanOnePage,
pageSize: transactionsPerPage
};
};
@@ -105,6 +105,8 @@ export const actions: Actions = {
if (endingBefore === 'undefined') {
endingBefore = undefined;
}
+ const firstTransactionId = formData.get('firstTransactionId')?.toString();
+ const hasMoreThanOnePage = formData.get('hasMoreThanOnePage') === 'true';
const { session } = await safeGetSession();
if (!session) return fail(401, { error: 'Not authenticated' });
@@ -117,7 +119,7 @@ export const actions: Actions = {
endingBefore
);
- const isFirstPage = transactions[0].id === firstTransactionId;
+ const isFirstPage = transactions.length > 0 && transactions[0].id === firstTransactionId;
return {
transactions: JSON.stringify(transactions),
diff --git a/src/routes/account/+page.svelte b/src/routes/account/+page.svelte
index e9bae73..21cefd9 100644
--- a/src/routes/account/+page.svelte
+++ b/src/routes/account/+page.svelte
@@ -5,8 +5,8 @@
export let data;
export let form;
- let { session, user, subscriptions, transactions } = data;
- $: ({ session, user, transactions } = data);
+ let { session, user, subscriptions, transactions, firstTransactionId, hasMoreThanOnePage } = data;
+ $: ({ session, user, transactions, firstTransactionId, hasMoreThanOnePage } = data);
let profileForm: HTMLFormElement;
let loading = false;
@@ -42,7 +42,7 @@
let startingAfter: string | undefined = undefined;
let endingBefore: string | undefined = undefined;
- let hasNextPage = true;
+ let hasNextPage = hasMoreThanOnePage;
let hasPreviousPage = false;
const handlePaginationSubmit: SubmitFunction = () => {
@@ -177,6 +177,8 @@
>
+
+