vscode-appwrite/src/tree/projects/ProjectTreeItem.ts
2021-07-19 21:31:58 -07:00

35 lines
1.5 KiB
TypeScript

import { TreeItem, TreeItemCollapsibleState } from "vscode";
import { Client } from "../../appwrite";
import { createAppwriteSdk } from "../../client";
import { AppwriteProjectConfiguration } from "../../settings";
import { AppwriteTreeItemBase } from "../../ui/AppwriteTreeItemBase";
import { DatabaseTreeItemProvider } from "../database/DatabaseTreeItemProvider";
import { FunctionsTreeItemProvider } from "../functions/FunctionsTreeItemProvider";
import { HealthParentTreeItem } from "../health/HealthParentTreeItem";
import { StorageTreeItemProvider } from "../storage/StorageTreeItemProvider";
import { UserTreeItemProvider } from "../users/UserTreeItemProvider";
export class ProjectTreeItem extends AppwriteTreeItemBase {
private readonly sdk: Client;
constructor(public readonly project: AppwriteProjectConfiguration, active: boolean) {
super(undefined, "Project");
const name = project.nickname ?? "Project";
this.label = `${name}`;
this.contextValue = `appwriteProject${active ? "_active" : ""}`;
this.sdk = createAppwriteSdk(project);
}
async getChildren(): Promise<TreeItem[]> {
return [
new DatabaseTreeItemProvider(this, this.sdk),
new FunctionsTreeItemProvider(this, this.sdk),
new UserTreeItemProvider(this, this.sdk),
new StorageTreeItemProvider(this, this.sdk),
new HealthParentTreeItem(this, this.sdk),
];
}
collapsibleState = TreeItemCollapsibleState.Collapsed;
}