{tab === "accounts" ? (
<>
{syncMsg ? {syncMsg} : null}
>
) : null}
{tab === "owners" ?
: (
<>
{/* Owner-filter TABS справа от заголовка секции */}
{loading ? "…" : matched.length} {accountsWord(matched.length)} моделей
setOwnerFilter("all")} />
{/* «Мои» = не привязаны ни к какому владельцу (чеки идут админу).
Новые/неопределённые аккаунты автоматически попадают сюда. */}
!a.ownerId).length} onClick={() => setOwnerFilter("mine")} />
{owners.map((o) => (
setOwnerFilter(o.id)} />
))}
{/* Панель фильтра: поиск + сортировка */}
{loading ? (
{Array.from({ length: 8 }).map((_, i) => (
))}
) : visibleRows.length === 0 ? (
{accounts.length === 0 ? "Аккаунтов нет" : "Нет аккаунтов под текущие фильтры"}
) : (
<>
{visibleRows.map((a) => (
toggleCheck(a.id)}
onOpen={() => openAccount(a.id)}
onOwnerChange={changeOwner}
/>
))}
>
)}
>
)}
{/* Bulk-бар: смена владельца у выделенных */}
{tab === "accounts" && checkedIds.size > 0 && (
{checkedIds.size} выделено
Сменить владельца:
)}
{/* Drawer с деталью аккаунта (редактор профиля) */}
{tab === "accounts" && drawerOpen && current && (
{current.name}
{current.username || "—"}
)}
);
}
// Вкладка «Владельцы» (master-detail): слева список владельцев со «Я (админ)»
// сверху как основной; клик → справа его аккаунты + смена владельца у каждого.
function OwnersPanel() {
const [owners, setOwners] = useStateM([]);
const [accounts, setAccounts] = useStateM([]);
const [loading, setLoading] = useStateM(true);
const [sel, setSel] = useStateM("admin"); // "admin" |