import Link from 'next/link'; import { ArrowLeft } 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, CardDescription, CardFooter, CardHeader, CardTitle, } from '@kit/ui/card'; import { AccountNotFound } from '~/components/account-not-found'; import { CmsPageShell } from '~/components/cms-page-shell'; import { GenerateDocumentForm } from '../_components/generate-document-form'; interface PageProps { params: Promise<{ account: string }>; searchParams: Promise<{ type?: string }>; } export default async function GenerateDocumentPage({ params, searchParams, }: PageProps) { const { account } = await params; const { type } = await searchParams; const client = getSupabaseServerClient(); const t = await getTranslations('documents'); const { data: acct } = await client .from('accounts') .select('id') .eq('slug', account) .single(); if (!acct) return ; const selectedType = type ?? 'member-card'; // Resolve the label from translations; fall back to generic 'Document' const selectedLabel = (t.raw(`types.${selectedType}`) as string | undefined) ?? t('generate.document'); return (
{/* Back link */}
{t('generate.backToDocuments')}
{t('generate.generateLabel', { label: selectedLabel })} {t('generate.chooseOptions')}
); }