--- export const prerender = false; import RootLayout from '../../layouts/RootLayout.astro'; import StoreHeader from '../../components/StoreHeader.astro'; import DbError from '../../components/DbError.astro'; import { env } from 'cloudflare:workers'; import { listOrders } from '@platform-modules/commerce-orders'; import { getDb, MissingDatabaseError } from '../../lib/db.js'; import { getSession, type SessionEnv } from '../../lib/session.js'; const cfEnv = env as (SessionEnv & { DB?: D1Database; DATABASE_URL?: string }) | undefined; const session = cfEnv ? await getSession(cfEnv, Astro.cookies) : null; if (!session) { return Astro.redirect('/login?next=%2Faccount'); } let orderCount = 0; let dbError: string | null = null; if (cfEnv) { try { const { db } = getDb(cfEnv); const orders = await listOrders(db, { userId: session.userId }, { limit: 20 }); orderCount = orders.items.length; } catch (err) { dbError = err instanceof MissingDatabaseError ? 'The store database is not configured yet.' : 'We could not load your account details. Please try again shortly.'; } } ---

Hello, {session.email}

Welcome to your account hub.

{dbError && (
)}