import React from "react"; export default function TasksSidebar({ createTask, taskSearch, setTaskSearch, taskFilter, setTaskFilter, taskSort, setTaskSort, filteredTasks, taskStatusMap, selectedTaskId, selectTask, deleteTask, hasSelectedTask, formatCountdown, formatTimestamp, accountById, formatAccountLabel }) { return (

Задачи

setTaskSearch(event.target.value)} placeholder="Поиск по названию или ссылке" />
{filteredTasks.length === 0 &&
Совпадений нет.
} {filteredTasks.map((task) => { const status = taskStatusMap[task.id]; const statusLabel = status ? (status.running ? "Запущено" : "Остановлено") : "—"; const statusClass = status ? (status.running ? "ok" : "off") : "off"; const unconfirmedCount = status ? Number(status.unconfirmedCount || 0) : 0; const queueLabel = status ? `Очередь: ${status.queueCount}` : "Очередь: —"; const dailyLabel = status ? `Лимит сегодня: ${status.dailyUsed}/${status.dailyLimit}` : "Лимит сегодня: —"; const cycleLabel = status && status.running ? `Цикл: ${formatCountdown(status.nextRunAt)}` : "Цикл: —"; const lastMessageRaw = status && status.monitorInfo && status.monitorInfo.lastMessageAt ? status.monitorInfo.lastMessageAt : ""; const lastMessage = formatTimestamp(lastMessageRaw); const lastSource = status && status.monitorInfo && status.monitorInfo.lastSource ? status.monitorInfo.lastSource : "—"; const monitoring = Boolean(status && status.monitorInfo && status.monitorInfo.monitoring); const monitorAccountIds = status && status.monitorInfo && status.monitorInfo.accountIds ? status.monitorInfo.accountIds : (status && status.monitorInfo && status.monitorInfo.accountId ? [status.monitorInfo.accountId] : []); const monitorLabels = monitorAccountIds .map((id) => { const account = accountById.get(id); return account ? formatAccountLabel(account) : String(id); }) .filter(Boolean); const monitorLabel = monitorLabels.length ? (monitorLabels.length > 2 ? `${monitorLabels.length} аккаунта` : monitorLabels.join(", ")) : "—"; const tooltip = [ `Статус: ${statusLabel}`, `Очередь: ${status ? status.queueCount : "—"}`, `Лимит сегодня: ${status ? `${status.dailyUsed}/${status.dailyLimit}` : "—"}`, `Мониторинг: ${monitoring ? "активен" : "нет"}`, `Мониторит: ${monitorLabel}`, `Последнее: ${lastMessage}`, `Источник: ${lastSource}` ].join(" | "); return ( ); })}
); }