Z ZPI 文档 v0.3.8
介绍页

源码

packages/desktop/src/renderer/task-group-expansion.ts

typescript24 行查看原文
export const taskGroupCollapsedKey = "zpi.collapsedTaskGroups";
export function expandTaskGroup(current: string[], groupId: string | null): string[] {
  return groupId && current.includes(groupId) ? current.filter((id) => id !== groupId) : current;
}
export function parseCollapsedTaskGroups(raw: string | null): string[] {
  try {
    const value: unknown = JSON.parse(raw ?? "[]");
    return Array.isArray(value)
      ? [...new Set(value.filter((id): id is string => typeof id === "string"))]
      : [];
  } catch {
    return [];
  }
}
export function pruneCollapsedTaskGroups(
  current: string[],
  groupIds: readonly string[],
  hydrated: boolean,
): string[] {
  if (!hydrated) return current;
  const next = current.filter((id) => groupIds.includes(id));
  return next.length === current.length ? current : next;
}