// AdminUsers — search + detail drawer with balance-credit and VIP toggle. const { useState: useAdmUState, useEffect: useAdmUEffect } = React; function AdminUsers({ onNavigate }) { const [q, setQ] = useAdmUState(''); const [items, setItems] = useAdmUState([]); const [loading, setLoading] = useAdmUState(true); const [selected, setSelected] = useAdmUState(null); const load = async (search) => { setLoading(true); try { const data = await api.get('/api/admin/users?page=1&page_size=50' + (search ? `&q=${encodeURIComponent(search)}` : '')); if (!data.__unauthorized) setItems(data.items || []); } catch (_) {} finally { setLoading(false); } }; useAdmUEffect(() => { load(''); }, []); return (
| # | Username | Имя | Баланс | VIP | Регистрация |
|---|---|---|---|---|---|
| #{u.user_id} | {u.user_name ? '@' + u.user_name : '—'} | {u.first_name || '—'} | {u.balance.toLocaleString('ru-RU')} ₽ | {u.is_vip ? '⭐' : ''} | {formatDate(u.reg_date) || '—'} |
| Ничего не нашли | |||||