import { Users } from 'lucide-react'; import { getTranslations } from 'next-intl/server'; import { createMemberServices } from '@kit/member-management/services'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { AccountNotFound } from '~/components/account-not-found'; import { CmsPageShell } from '~/components/cms-page-shell'; import { EmptyState } from '~/components/empty-state'; import { CreateDepartmentDialog } from './create-department-dialog'; import { DeleteDepartmentButton } from './delete-department-button'; interface Props { params: Promise<{ account: string }>; } export default async function DepartmentsPage({ params }: Props) { const { account } = await params; const client = getSupabaseServerClient(); const t = await getTranslations('members'); const { data: acct } = await client .from('accounts') .select('id') .eq('slug', account) .single(); if (!acct) return ; const { organization } = createMemberServices(client); const departments = await organization.listDepartments(acct.id); return ( {departments.length === 0 ? ( } title={t('departments.noDepartments')} description={t('departments.createFirst')} /> ) : ( {t('departments.name')} {t('departments.description')} {t('departments.actions')} {departments.map((dept: Record) => ( {String(dept.name)} {String(dept.description ?? '—')} ))} )} ); }