import { state } from "../store.js"; import { t } from "../i18n.js"; import { iconMarkup } from "../icons.js"; import { formatSize, taskStateKind } from "../format.js"; import { escapeHtml } from "../dom.js"; let lastSig = null; export function renderStatusBar(container) { const aggSpeed = state.queueTasks .filter((tk) => taskStateKind(tk.state) === "running") .reduce((sum, tk) => sum + (tk.speed ?? 0), 0); const connected = state.tabs.filter((tb) => tb.status === "connected").length; const total = state.tabs.length; container.innerHTML = ` ${escapeHtml(state.statusMessage)}
`; lastSig = computeSig(); } function computeSig() { return JSON.stringify([ state.statusMessage, state.tabs.map((tb) => tb.status), state.queueTasks.map((tk) => tk.speed), ]); } export function updateStatusBarIfNeeded(container) { if (computeSig() === lastSig) return; renderStatusBar(container); }