File size: 836 Bytes
cd8bd0a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
export const HIDEABLE_SIDEBAR_GROUP_IDS = [
  "compression-context",
  "tools",
  "integrations",
  "logs",
  "audit",
  "system",
  "gamification",
  "batch",
] as const;

export type HideableSidebarGroupId = (typeof HIDEABLE_SIDEBAR_GROUP_IDS)[number];

export const HIDDEN_SIDEBAR_GROUP_LABELS_SETTING_KEY = "hiddenSidebarGroupLabels";

export function normalizeHiddenSidebarGroupLabels(value: unknown): HideableSidebarGroupId[] {
  if (!Array.isArray(value)) return [];

  const hiddenGroups = new Set<HideableSidebarGroupId>();

  for (const item of value) {
    if (
      typeof item === "string" &&
      HIDEABLE_SIDEBAR_GROUP_IDS.includes(item as HideableSidebarGroupId)
    ) {
      hiddenGroups.add(item as HideableSidebarGroupId);
    }
  }

  return HIDEABLE_SIDEBAR_GROUP_IDS.filter((item) => hiddenGroups.has(item));
}