// ─────────────────────────────────────────────────────────── // Huio Control Panel — Hụi Groups View (cp-groups-view.jsx) // ─────────────────────────────────────────────────────────── if (!window.CP_STYLES) throw new Error('[cp-groups-view] window.CP_STYLES not loaded'); function renderGroups({ lang = 'vi', t: rawT, appStyles: rawAppStyles, groups: rawGroups = [], setActiveGroupDetail, setGroupDetailTab, loadGroupDetails, }) { const appStyles = rawAppStyles || window.CP_STYLES || {}; const t = typeof rawT === 'function' ? rawT : (k) => k; const groups = Array.isArray(rawGroups) ? rawGroups : []; const vnd = window.vnd || ((v) => (v != null ? `${Number(v).toLocaleString('vi-VN')} ₫` : '0 ₫')); return (
{t('groups.sub')}
| {t('groups.col.name')} | {t('groups.col.organizer')} | {t('groups.col.amount')} | {t('groups.col.members')} | {t('groups.col.period')} | {t('groups.col.volume')} | {t('groups.col.status')} |
|---|---|---|---|---|---|---|
| {g.name} | {g.organizer} | {vnd(g.amount)} | {g.members} {t('groups.slots_count')} | {g.period} | {vnd(g.volume)} | {t(`groups.status.${g.status}`)} |