'use server'; import { use } from 'react'; import { createAccountsApi } from '@/packages/features/accounts/src/server/api'; import { CompanyGuard } from '@/packages/features/team-accounts/src/components'; import { createTeamAccountsApi } from '@/packages/features/team-accounts/src/server/api'; import { getSupabaseServerClient } from '@/packages/supabase/src/clients/server-client'; import { PageBody } from '@kit/ui/page'; import { Trans } from '@kit/ui/trans'; import { createI18nServerInstance } from '~/lib/i18n/i18n.server'; import { withI18n } from '~/lib/i18n/with-i18n'; import { PAGE_VIEW_ACTION, createPageViewLog, } from '~/lib/services/audit/pageView.service'; import { Dashboard } from './_components/dashboard'; import { TeamAccountLayoutPageHeader } from './_components/team-account-layout-page-header'; import { withI18n } from '~/lib/i18n/with-i18n'; interface TeamAccountHomePageProps { params: Promise<{ account: string }>; } export const generateMetadata = async () => { const i18n = await createI18nServerInstance(); const title = i18n.t('teams:home.pageTitle'); return { title, }; }; function TeamAccountHomePage({ params }: TeamAccountHomePageProps) { const account = use(params).account; const client = getSupabaseServerClient(); const teamAccountsApi = createTeamAccountsApi(client); const accountsApi = createAccountsApi(client); const teamAccount = use(teamAccountsApi.getTeamAccount(account)); const { memberParams, members } = use(teamAccountsApi.getMembers(account)); const bmiThresholds = use(accountsApi.fetchBmiThresholds()); const companyParams = use( teamAccountsApi.getTeamAccountParams(teamAccount.id), ); use( createPageViewLog({ accountId: teamAccount.id, action: PAGE_VIEW_ACTION.VIEW_TEAM_ACCOUNT_DASHBOARD, }), ); return ( ); } export default withI18n(CompanyGuard(TeamAccountHomePage));