// screens/approval.jsx — Approval inbox (cards: incoming → AI draft → actions)
// All copy goes through window.tr() with EN fallbacks for canvas use.
const _trA = (k, fb) => (window.tr ? window.tr(k, fb) : fb);
const _useLangA = () => (window.useLang ? window.useLang() : 'en');
function ApprovalCard({ theme, name, handle, time, incoming, draft, tag, confidence, last }) {
const t = useT(theme);
return (
{/* Header: who + topic tag */}
{name}
@{handle} · {time}
{tag.label}
{/* Incoming */}
{incoming}
{/* Draft section header */}
{_trA('appr.drafted', 'Recadly drafted')}
{/* confidence dots */}
{[0,1,2].map(i => (
))}
{confidence === 3 ? _trA('appr.match.high', 'High match')
: confidence === 2 ? _trA('appr.match.medium', 'Medium match')
: _trA('appr.match.low', 'Low match')}
{/* Draft */}
{draft}
{/* Actions */}
);
}
function ApprovalInbox({ theme = 'light' }) {
_useLangA();
const t = useT(theme);
const cards = [
{
name: 'Marina Costa', handle: 'marinacostaa', time: _trA('appr.c1.time', '2 min ago'),
tag: { label: _trA('appr.tag.shipping', 'Shipping'), bg: '#FFE7E2', fg: '#C25540' },
incoming: _trA('appr.c1.incoming'),
draft: _trA('appr.c1.draft'),
confidence: 3,
},
{
name: 'Theo Mendez', handle: 'theo.builds', time: _trA('appr.c2.time', '11 min ago'),
tag: { label: _trA('appr.tag.restock', 'Restock'), bg: '#E4EAD8', fg: '#5C7A2E' },
incoming: _trA('appr.c2.incoming'),
draft: _trA('appr.c2.draft'),
confidence: 2,
},
];
return (
{_trA('appr.waiting', '6 waiting on you')}
{_trA('appr.title', 'Approvals')}
{_trA('appr.desc', 'Review what Recadly wants to send. Approve, tweak, or skip — your voice stays yours.')}
{cards.map((c, i) => (
))}
{_trA('appr.moreBelow', '4 more drafts below')}
);
}
window.ApprovalInbox = ApprovalInbox;