feat: add red colors to unknown status\priority

This commit is contained in:
2026-07-19 09:37:36 +05:00
parent 93b299e6ad
commit 184f1c4d1e
4 changed files with 30 additions and 7 deletions
+1
View File
@@ -12,6 +12,7 @@ export type KanbanOutboundMessage =
scopeFilter: KanbanScopeFilter;
shownHiddenColumns: TaskStatus[];
defaultHiddenStatuses: TaskStatus[];
dangerStatuses: TaskStatus[];
availableScopes: TaskScope[];
}
| { variant: "error"; error: AppError };
+12
View File
@@ -116,6 +116,13 @@ export function getTaskKanbanHtml(
color: var(--vscode-button-foreground);
border-color: transparent;
}
#visibility-bar button.danger {
border-color: var(--vscode-errorForeground);
border-width: 2px;
}
#visibility-bar button.danger.shown {
background: var(--vscode-errorForeground);
}
#status-line {
font-size: 0.85em;
opacity: 0.85;
@@ -210,6 +217,7 @@ export function getTaskKanbanHtml(
let scopeFilter = "all";
let shownHiddenColumns = [];
let defaultHiddenStatuses = [];
let dangerStatuses = [];
let availableScopes = [];
let dragTaskId = null;
@@ -269,6 +277,9 @@ export function getTaskKanbanHtml(
if (shownHiddenColumns.indexOf(status) >= 0) {
btn.classList.add("shown");
}
if (dangerStatuses.indexOf(status) >= 0) {
btn.classList.add("danger");
}
btn.addEventListener("click", () => {
post({ variant: "toggleHiddenColumn", status: status });
});
@@ -374,6 +385,7 @@ export function getTaskKanbanHtml(
scopeFilter = message.scopeFilter || "all";
shownHiddenColumns = message.shownHiddenColumns || [];
defaultHiddenStatuses = message.defaultHiddenStatuses || [];
dangerStatuses = message.dangerStatuses || [];
availableScopes = message.availableScopes || [];
setStatus("");
render();
+10 -5
View File
@@ -278,10 +278,12 @@ export class TaskKanbanPanel {
}
#postState(): void {
const board = buildKanbanBoard(
this.#filteredTasks().map((item) => item.task),
{ shownHiddenColumns: this.#shownHiddenColumns },
);
const filtered = this.#filteredTasks().map((item) => item.task);
const board = buildKanbanBoard(filtered, {
shownHiddenColumns: this.#shownHiddenColumns,
});
const hasUnknown = filtered.some((t) => t.status === TaskStatus.UNKNOWN);
this.#post({
variant: "state",
@@ -289,9 +291,12 @@ export class TaskKanbanPanel {
scopeFilter: this.#scopeFilter,
shownHiddenColumns: this.#shownHiddenColumns,
defaultHiddenStatuses: TASK_STATUS_ORDER.filter(
(s) => TASK_STATUS_META[s].defaultHidden,
(s) =>
TASK_STATUS_META[s].defaultHidden &&
(s !== TaskStatus.UNKNOWN || hasUnknown),
),
availableScopes: this.#availableScopes(),
dangerStatuses: hasUnknown ? [TaskStatus.UNKNOWN] : [],
});
}
+7 -2
View File
@@ -3,9 +3,9 @@ import { resolveTaskLocations } from "@/commands/resolveTaskLocations";
import { Task } from "@/model/task";
import { LocatedTask, TaskLocation } from "@/model/taskLocation";
import {
TaskStatus,
TASK_STATUS_META,
TASK_STATUS_ORDER,
type TaskStatus,
} from "@/model/taskStatus";
import { IConfigProvider, ITaskRepository } from "@/ports";
import { TASK_SCOPE_LABELS, TASK_STATUS_LABELS } from "@/ui/taskLabels";
@@ -47,7 +47,12 @@ class TaskGroupTreeItem extends vscode.TreeItem {
this.description = `(${tasks.length})`;
this.id = `group-${location.scope}-${status}`;
this.contextValue = "taskGroup";
this.iconPath = new vscode.ThemeIcon(TASK_STATUS_META[status].icon);
this.iconPath = new vscode.ThemeIcon(
TASK_STATUS_META[status].icon,
status === TaskStatus.UNKNOWN
? new vscode.ThemeColor("charts.red")
: undefined,
);
}
}