23 lines
1.4 KiB
TypeScript
23 lines
1.4 KiB
TypeScript
// события строки состояния доски; ход пакета обновления из 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 };
|
||
}
|
||
}
|