import { ThemeIcon, TreeItem, TreeItemCollapsibleState, WorkspaceFolder } from "vscode"; import { act } from "../../extension"; import { Setting } from "../../settingsManager"; import { GithubLocalActionsTreeItem } from "../githubLocalActionsTreeItem"; import SettingTreeItem from "./setting"; export default class SecretsTreeItem extends TreeItem implements GithubLocalActionsTreeItem { static contextValue = 'githubLocalActions.secrets'; constructor(public workspaceFolder: WorkspaceFolder, secrets: Setting[]) { super('Secrets', TreeItemCollapsibleState.Collapsed); this.description = `${secrets.filter(secret => secret.selected).length}/${secrets.length}`; this.contextValue = SecretsTreeItem.contextValue; this.iconPath = new ThemeIcon('lock'); } async getChildren(): Promise { const items: GithubLocalActionsTreeItem[] = []; const settings = await act.settingsManager.getSettings(this.workspaceFolder, false); for (const secret of settings.secrets) { items.push(SettingTreeItem.getSecretTreeItem(this.workspaceFolder, secret)); } return items.sort((a, b) => a.label!.toString().localeCompare(b.label!.toString())); } }