import { cache } from 'react'; import { AdminAccountPage } from '@kit/admin/components/admin-account-page'; import { AdminGuard } from '@kit/admin/components/admin-guard'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; interface Params { params: Promise<{ id: string; }>; } export const generateMetadata = async (props: Params) => { const params = await props.params; const account = await loadAccount(params.id); return { title: `Admin | ${account.name}`, }; }; async function AccountPage(props: Params) { const params = await props.params; const account = await loadAccount(params.id); return ; } export default AdminGuard(AccountPage); const loadAccount = cache(accountLoader); async function accountLoader(id: string) { const client = getSupabaseServerClient(); const { data, error } = await client .from('accounts') .select('*, memberships: accounts_memberships (*)') .eq('id', id) .single(); if (error) { throw error; } return data; }