import { useState } from 'react' import { ChevronLeft, ChevronRight, Check, Copy, Play, Plus, Trash2, FolderX } from 'lucide-react' import clsx from 'clsx' export default function AccountsTable({ t, accounts, loadingAccounts, testing, testingAll, batchProgress, sessionCounts, deletingSessions, updatingProxy, totalAccounts, page, pageSize, totalPages, resolveAccountIdentifier, proxies, onTestAll, onShowAddAccount, onTestAccount, onDeleteAccount, onDeleteAllSessions, onUpdateAccountProxy, onPrevPage, onNextPage, onPageSizeChange, searchQuery, onSearchChange, envBacked = false, }) { const [copiedId, setCopiedId] = useState(null) const copyId = (id) => { navigator.clipboard.writeText(id).then(() => { setCopiedId(id) setTimeout(() => setCopiedId(null), 1500) }) } return (

{t('accountManager.accountsTitle')}

{t('accountManager.accountsDesc')}

onSearchChange(e.target.value)} placeholder={t('accountManager.searchPlaceholder')} className="px-3 py-1.5 text-sm bg-muted border border-border rounded-lg focus:outline-none focus:ring-1 focus:ring-ring placeholder:text-muted-foreground" />
{testingAll && batchProgress.total > 0 && (
{t('accountManager.testingAllAccounts')} {batchProgress.current} / {batchProgress.total}
{batchProgress.results.length > 0 && (
{batchProgress.results.map((r, i) => (
{r.success ? '✓' : '✗'} {r.id}
))}
)}
)}
{loadingAccounts ? (
{t('actions.loading')}
) : accounts.length > 0 ? ( accounts.map((acc, i) => { const id = resolveAccountIdentifier(acc) const assignedProxy = proxies.find(proxy => proxy.id === acc.proxy_id) const runtimeUnknown = envBacked && !acc.test_status const isActive = acc.test_status === 'ok' || acc.has_token return (
copyId(id)} > {id || '-'} {copiedId === id ? : }
{acc.test_status === 'failed' ? t('accountManager.testStatusFailed') : isActive ? t('accountManager.sessionActive') : runtimeUnknown ? t('accountManager.runtimeStatusUnknown') : t('accountManager.reauthRequired')} {acc.token_preview && ( {acc.token_preview} )} {sessionCounts && sessionCounts[id] !== undefined && ( {t('accountManager.sessionCount', { count: sessionCounts[id] })} )} {sessionCounts && sessionCounts[id] !== undefined && sessionCounts[id] > 0 && ( )} {acc.proxy_id && ( {t('accountManager.proxyBadge', { name: assignedProxy ? (assignedProxy.name || `${assignedProxy.host}:${assignedProxy.port}`) : acc.proxy_id })} )}
) }) ) : (
{searchQuery ? t('accountManager.searchNoResults') : t('accountManager.noAccounts')}
)}
{totalPages > 1 && (
{t('accountManager.pageInfo', { current: page, total: totalPages, count: totalAccounts })}
{page} / {totalPages}
)}
) }