import { PlusCircle } from 'lucide-react'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { AccountInvitationsTable, AccountMembersTable, InviteMembersDialogContainer, } from '@kit/team-accounts/components'; import { AppBreadcrumbs } from '@kit/ui/app-breadcrumbs'; import { Button } from '@kit/ui/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@kit/ui/card'; import { If } from '@kit/ui/if'; 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'; // local imports import { TeamAccountLayoutPageHeader } from '../_components/team-account-layout-page-header'; import { loadMembersPageData } from './_lib/server/members-page.loader'; interface TeamAccountMembersPageProps { params: Promise<{ account: string }>; } export const generateMetadata = async () => { const i18n = await createI18nServerInstance(); const title = i18n.t('teams:members.pageTitle'); return { title, }; }; async function TeamAccountMembersPage({ params }: TeamAccountMembersPageProps) { const client = getSupabaseServerClient(); const slug = (await params).account; const [members, invitations, canAddMember, { user, account }] = await loadMembersPageData(client, slug); const canManageRoles = account.permissions.includes('roles.manage'); const canManageInvitations = account.permissions.includes('invites.manage'); const isPrimaryOwner = account.primary_owner_user_id === user.id; const currentUserRoleHierarchy = account.role_hierarchy_level; return ( <> } description={} account={account.slug} />
); } export default withI18n(TeamAccountMembersPage);