fix: show toggle unknown button while unknown column is shown
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
import { TaskStatus } from "@/model/taskStatus";
|
||||||
|
import { filterDefaultHiddenStatuses } from "./filterDefaultHiddenStatuses";
|
||||||
|
|
||||||
|
describe("filterDefaultHiddenStatuses", () => {
|
||||||
|
it("excludes unknown when no unknown tasks and column not shown", () => {
|
||||||
|
const result = filterDefaultHiddenStatuses(false, []);
|
||||||
|
expect(result).not.toContain(TaskStatus.UNKNOWN);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("includes unknown when unknown tasks exist", () => {
|
||||||
|
const result = filterDefaultHiddenStatuses(true, []);
|
||||||
|
expect(result).toContain(TaskStatus.UNKNOWN);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("includes unknown when column is shown even without unknown tasks", () => {
|
||||||
|
const result = filterDefaultHiddenStatuses(false, [TaskStatus.UNKNOWN]);
|
||||||
|
expect(result).toContain(TaskStatus.UNKNOWN);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import {
|
||||||
|
TaskStatus,
|
||||||
|
TASK_STATUS_META,
|
||||||
|
TASK_STATUS_ORDER,
|
||||||
|
} from "@/model/taskStatus";
|
||||||
|
|
||||||
|
export function filterDefaultHiddenStatuses(
|
||||||
|
hasUnknown: boolean,
|
||||||
|
shownHiddenColumns: TaskStatus[],
|
||||||
|
): TaskStatus[] {
|
||||||
|
return TASK_STATUS_ORDER.filter(
|
||||||
|
(s) =>
|
||||||
|
TASK_STATUS_META[s].defaultHidden &&
|
||||||
|
(s !== TaskStatus.UNKNOWN || hasUnknown || shownHiddenColumns.includes(TaskStatus.UNKNOWN)),
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import { listLocatedTasks } from "@/commands/listLocatedTasks";
|
|||||||
import { resolveTaskLocations } from "@/commands/resolveTaskLocations";
|
import { resolveTaskLocations } from "@/commands/resolveTaskLocations";
|
||||||
import { appError, AppErrorVariant } from "@/error";
|
import { appError, AppErrorVariant } from "@/error";
|
||||||
import { buildKanbanBoard } from "@/kanban/buildKanbanBoard";
|
import { buildKanbanBoard } from "@/kanban/buildKanbanBoard";
|
||||||
|
import { filterDefaultHiddenStatuses } from "@/kanban/filterDefaultHiddenStatuses";
|
||||||
import {
|
import {
|
||||||
parseKanbanInboundMessage,
|
parseKanbanInboundMessage,
|
||||||
type KanbanInboundMessage,
|
type KanbanInboundMessage,
|
||||||
@@ -290,10 +291,9 @@ export class TaskKanbanPanel {
|
|||||||
board,
|
board,
|
||||||
scopeFilter: this.#scopeFilter,
|
scopeFilter: this.#scopeFilter,
|
||||||
shownHiddenColumns: this.#shownHiddenColumns,
|
shownHiddenColumns: this.#shownHiddenColumns,
|
||||||
defaultHiddenStatuses: TASK_STATUS_ORDER.filter(
|
defaultHiddenStatuses: filterDefaultHiddenStatuses(
|
||||||
(s) =>
|
hasUnknown,
|
||||||
TASK_STATUS_META[s].defaultHidden &&
|
this.#shownHiddenColumns,
|
||||||
(s !== TaskStatus.UNKNOWN || hasUnknown),
|
|
||||||
),
|
),
|
||||||
availableScopes: this.#availableScopes(),
|
availableScopes: this.#availableScopes(),
|
||||||
dangerStatuses: hasUnknown ? [TaskStatus.UNKNOWN] : [],
|
dangerStatuses: hasUnknown ? [TaskStatus.UNKNOWN] : [],
|
||||||
|
|||||||
Reference in New Issue
Block a user