import Link from 'next/link'; import { FileText, Plus } from 'lucide-react'; import { createNewsletterApi } from '@kit/newsletter/api'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { Badge } from '@kit/ui/badge'; 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'; import { EmptyState } from '~/components/empty-state'; interface PageProps { params: Promise<{ account: string }>; } export default async function NewsletterTemplatesPage({ params }: PageProps) { const { account } = await params; const client = getSupabaseServerClient(); const { data: acct } = await client .from('accounts') .select('id') .eq('slug', account) .single(); if (!acct) return ; const api = createNewsletterApi(client); const templatesResult = await api.listTemplates(acct.id); const templates = templatesResult.data; return (
{/* Header */}

Newsletter-Vorlagen

Wiederverwendbare Vorlagen für Newsletter

{/* Table or Empty State */} {templates.length === 0 ? ( } title="Keine Vorlagen vorhanden" description="Erstellen Sie Ihre erste Newsletter-Vorlage, um sie in Kampagnen wiederzuverwenden." actionLabel="Neue Vorlage" /> ) : ( Alle Vorlagen ({templates.length})
{templates.map((template: Record) => { const variables = Array.isArray(template.variables) ? (template.variables as string[]) : []; return ( ); })}
Name Betreff Variablen
{String(template.name ?? '—')} {String(template.subject ?? '—')}
{variables.length > 0 ? ( variables.map((v) => ( {`{{${v}}}`} )) ) : ( )}
)}
); }