// события строки состояния доски; ход пакета обновления из Jira — в оболочке (shell/refreshStatus.ts) export type BoardStatus = | { kind: "loading" } | { kind: "hub-down"; hasData: boolean; fromFile: boolean } | { kind: "file-error"; fileName: string; reason: string } | { kind: "json-applied"; fileName: string } | { kind: "error"; message: string }; // одна строка состояния доски: текст и признак предупреждения (M-5) export function statusText(s: BoardStatus): { text: string; warn: boolean } { switch (s.kind) { case "loading": return { text: "загрузка данных хаба…", warn: false }; case "hub-down": return { text: s.fromFile ? "хаб не отвечает — на доске снимок из файла" : s.hasData ? "хаб не отвечает — показаны прежние данные" : "хаб не отвечает: запустите хаб (jira-hub serve) и нажмите «Перечитать»", warn: true, }; case "file-error": return { text: `файл не разобран: ${s.reason}`, warn: true }; case "json-applied": return { text: `раскладка и фильтры из ${s.fileName} применены к данным хаба`, warn: false }; case "error": return { text: s.message, warn: true }; } }