// admin.jsx — Admin web panel preview (rendered as a small "tablet/laptop" mockup) function AdminPanel({ lang, t }) { const stats = [ { label: t('total_users'), val: '1,248', delta: '+12%', up: true }, { label: t('total_listings'), val: '562', delta: '+8%', up: true }, { label: t('active_chats'), val: '342', delta: '+15%', up: true }, { label: t('reports'), val: '28', delta: '-5%', up: false }, ]; const navItems = [ { id: 'stats', icon: '◇', label: lang === 'ka' ? 'სტატისტიკა' : 'Statistiques' }, { id: 'users', icon: '◔', label: lang === 'ka' ? 'მომხმარებლები' : 'Utilisateurs' }, { id: 'listings', icon: '▣', label: lang === 'ka' ? 'განცხადებები' : 'Annonces' }, { id: 'reports', icon: '⚑', label: lang === 'ka' ? 'რეპორტები' : 'Signalements' }, { id: 'finance', icon: '€', label: lang === 'ka' ? 'ფინანსები' : 'Finances' }, { id: 'settings', icon: '◐', label: lang === 'ka' ? 'პარამეტრები' : 'Paramètres' }, ]; const reports = [ { code: '#1254', issue: lang === 'ka' ? 'არასწორი ფოტო' : 'Photo inappropriée', time: lang === 'ka' ? '2 წთ' : 'il y a 2 min' }, { code: '#1253', issue: lang === 'ka' ? 'ნომრის გაცვლა' : 'Échange de numéro', time: lang === 'ka' ? '1 სთ' : 'il y a 1 h' }, { code: '#1251', issue: lang === 'ka' ? 'სპამი' : 'Spam', time: lang === 'ka' ? '3 სთ' : 'il y a 3 h' }, ]; return (
{/* Sidebar */}
Admin
{navItems.map((it, i) => { const a = i === 0; return (
{it.icon} {it.label}
); })}
{/* Main */}
{lang === 'ka' ? 'სტატისტიკა' : 'Statistiques'}
{/* Stats */}
{stats.map((s, i) => (
{s.label}
{s.val}
{s.delta}
))}
{/* Chart */}
{t('activity')}
30j
{[0, 35, 70, 105, 140].map(y => ( ))} {[[40, 90], [120, 70], [200, 50], [280, 35], [360, 25]].map(([x, y], i) => ( ))}
{/* Recent reports */}
{t('recent_reports')}
{reports.map((r, i) => (
{r.code}
{r.issue}
{r.time}
))}
); } window.AdminPanel = AdminPanel;