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