import Link from 'next/link'; import { CreditCard, FileText, Tag, BarChart3, Mail, Award, } from 'lucide-react'; import { getTranslations } from 'next-intl/server'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { Button } from '@kit/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { AccountNotFound } from '~/components/account-not-found'; import { CmsPageShell } from '~/components/cms-page-shell'; interface PageProps { params: Promise<{ account: string }>; } const DOCUMENT_TYPES = [ { id: 'member-card', icon: CreditCard, color: 'text-blue-600 bg-blue-50', }, { id: 'invoice', icon: FileText, color: 'text-green-600 bg-green-50', }, { id: 'labels', icon: Tag, color: 'text-orange-600 bg-orange-50', }, { id: 'report', icon: BarChart3, color: 'text-purple-600 bg-purple-50', }, { id: 'letter', icon: Mail, color: 'text-rose-600 bg-rose-50', }, { id: 'certificate', icon: Award, color: 'text-amber-600 bg-amber-50', }, ] as const; export default async function DocumentsPage({ params }: PageProps) { const { account } = await params; const client = getSupabaseServerClient(); const t = await getTranslations('documents'); const { data: acct } = await client .from('accounts') .select('id') .eq('slug', account) .single(); if (!acct) return ; return ( {/* Actions */} {t('overview.manageTemplates')} {/* Document Type Grid */} {DOCUMENT_TYPES.map((docType) => { const Icon = docType.icon; return ( {t(`types.${docType.id}`)} {t(`typeDescriptions.${docType.id}`)} {t('overview.generate')} ); })} ); }
{t(`typeDescriptions.${docType.id}`)}