Files
Momento/memento-note/app/(admin)/admin/marketing/marketing-admin-client.tsx
Antigravity 6fa12f6e13
All checks were successful
CI / Lint, Unit Tests & Build (push) Successful in 7m32s
CI / Deploy production (on server) (push) Successful in 27s
feat(admin): pages Marketing et Statistiques (sans envoi)
Ajoute deux entrées au menu d’administration. Les campagnes s’affichent dans un tableau vide honnête. Les statistiques disent clairement qu’aucune mesure n’est encore branchée, sans afficher de zéro trompeur.
2026-09-06 08:55:43 +00:00

77 lines
2.4 KiB
TypeScript

'use client'
import { Mail } from 'lucide-react'
import { useLanguage } from '@/lib/i18n'
const COLUMN_KEYS = [
'name',
'goal',
'audience',
'language',
'offer',
'status',
'scheduledAt',
'accepted',
'delivered',
'paidConversions',
] as const
export function MarketingAdminClient() {
const { t } = useLanguage()
return (
<div className="space-y-6" dir="auto">
<div className="flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between">
<div className="min-w-0">
<div className="flex items-center gap-2">
<Mail size={20} className="shrink-0 text-brand-accent" aria-hidden />
<h1 className="text-2xl font-bold tracking-tight text-foreground">
{t('admin.marketing.title')}
</h1>
</div>
<p className="mt-1 max-w-2xl text-sm text-muted-foreground">
{t('admin.marketing.description')}
</p>
</div>
<button
type="button"
disabled
title={t('admin.marketing.createDisabledHint')}
className="inline-flex h-10 items-center justify-center rounded-xl border border-border bg-muted/40 px-4 text-sm font-medium text-muted-foreground opacity-70"
>
{t('admin.marketing.createCampaign')}
</button>
</div>
<div className="overflow-x-auto rounded-xl border border-border bg-card">
<table className="w-full min-w-[56rem] border-collapse text-start text-[13px]">
<caption className="sr-only">{t('admin.marketing.title')}</caption>
<thead>
<tr className="border-b border-border bg-muted/30">
{COLUMN_KEYS.map((key) => (
<th
key={key}
scope="col"
className="whitespace-nowrap px-3 py-2.5 font-semibold text-foreground"
>
{t(`admin.marketing.columns.${key}`)}
</th>
))}
</tr>
</thead>
<tbody>
<tr>
<td colSpan={COLUMN_KEYS.length} className="px-3 py-12 text-center">
<p className="font-medium text-foreground">{t('admin.marketing.emptyTitle')}</p>
<p className="mx-auto mt-1 max-w-lg text-sm text-muted-foreground">
{t('admin.marketing.emptyBody')}
</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
)
}