Skip to content

Commit f29dd17

Browse files
committed
simplify worktreeprovider
1 parent 2f010cc commit f29dd17

File tree

3 files changed

+21
-39
lines changed

3 files changed

+21
-39
lines changed

package.json

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,22 @@
4141
"views": {
4242
"coder": [
4343
{
44-
"id": "coderRemote",
45-
"name": "Workspaces",
44+
"id": "myWorkspaces",
45+
"name": "My Workspaces",
46+
"visibility": "visible",
47+
"icon": "media/logo.svg"
48+
},
49+
{
50+
"id": "allWorkspaces",
51+
"name": "All Workspaces",
4652
"visibility": "visible",
4753
"icon": "media/logo.svg"
4854
}
4955
]
5056
},
5157
"viewsWelcome": [
5258
{
53-
"view": "coderRemote",
59+
"view": "myWorkspaces",
5460
"contents": "Coder is a platform that provisions remote development environments. \n[Login](command:coder.login)",
5561
"when": "!coder.authenticated && coder.loaded"
5662
}
@@ -86,23 +92,19 @@
8692
"view/title": [
8793
{
8894
"command": "coder.logout",
89-
"when": "coder.authenticated && view == coderRemote"
95+
"when": "coder.authenticated && view == myWorkspaces"
9096
},
9197
{
9298
"command": "coder.createWorkspace",
93-
"when": "coder.authenticated && view == coderRemote",
99+
"when": "coder.authenticated && view == myWorkspaces",
94100
"group": "navigation"
95101
}
96102
],
97103
"view/item/context": [
98104
{
99105
"command": "coder.open",
100-
"when": "coder.authenticated && viewItem.label !== 'My Workspaces' && view == coderRemote",
106+
"when": "coder.authenticated && view == myWorkspaces || coder.authenticated && view == allWorkspaces",
101107
"group": "inline"
102-
},
103-
{
104-
"command": "coder.removeWorkspace",
105-
"when": "coder.authenticated"
106108
}
107109
]
108110
}

src/extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ export async function activate(ctx: vscode.ExtensionContext): Promise<void> {
1313
const storage = new Storage(output, ctx.globalState, ctx.secrets, ctx.globalStorageUri, ctx.logUri)
1414
await storage.init()
1515

16-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
17-
vscode.window.registerTreeDataProvider("coderRemote", new WorkspaceProvider())
16+
vscode.window.registerTreeDataProvider("myWorkspaces", new WorkspaceProvider("owner:me"))
17+
vscode.window.registerTreeDataProvider("allWorkspaces", new WorkspaceProvider())
1818

1919
getUser()
2020
.then(() => {

src/workspacesProvider.ts

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,17 @@ import * as path from "path"
33
import * as vscode from "vscode"
44

55
export class WorkspaceProvider implements vscode.TreeDataProvider<TreeItem> {
6+
constructor(private readonly getWorkspacesQuery?: string) {}
67
getTreeItem(element: TreeItem): vscode.TreeItem {
78
return element
89
}
910

10-
getChildren(element?: TreeItem): Thenable<TreeItem[]> {
11-
if (!element) {
12-
return Promise.resolve([
13-
new TreeItem("My Workspaces", vscode.TreeItemCollapsibleState.Expanded),
14-
new TreeItem("All Workspaces", vscode.TreeItemCollapsibleState.None),
15-
])
16-
}
17-
if (element.label === "My Workspaces") {
18-
return getWorkspaces({
19-
q: "owner:me",
20-
}).then((workspaces) => {
21-
return workspaces.workspaces.map(
22-
(workspace) => new TreeItem(workspace.name, vscode.TreeItemCollapsibleState.None),
23-
)
24-
})
25-
}
26-
if (element.label === "All Workspaces") {
27-
return getWorkspaces({
28-
q: "owner:all",
29-
}).then((workspaces) => {
30-
const exampleWorkspaces = [{ name: "example1" }, { name: "example2" }]
31-
return [...workspaces.workspaces, ...exampleWorkspaces].map(
32-
(workspace) => new TreeItem(workspace.name, vscode.TreeItemCollapsibleState.None),
33-
)
34-
})
35-
}
36-
return Promise.resolve([])
11+
getChildren(): Thenable<TreeItem[]> {
12+
return getWorkspaces({ q: this.getWorkspacesQuery }).then((workspaces) => {
13+
return workspaces.workspaces.map(
14+
(workspace) => new TreeItem(workspace.name, vscode.TreeItemCollapsibleState.None),
15+
)
16+
})
3717
}
3818
}
3919

0 commit comments

Comments
 (0)