Skip to content

Commit 93c71a3

Browse files
committed
feat: remove workspace repoInfo logic
1 parent a0f253d commit 93c71a3

File tree

5 files changed

+32
-19
lines changed

5 files changed

+32
-19
lines changed

src/extension.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ async function activate(context: IContext) {
3737
value: {
3838
webviewProvider,
3939
codingServer,
40-
repoInfo,
4140
depots: [],
4241
selectedDepot: null,
4342
},

src/init.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export function registerCommands(context: IContext) {
4747
export function createTreeViews(context: IContext) {
4848
context.subscriptions.push(
4949
hx.window.createTreeView('codingPlugin.treeMR', {
50-
showCollapseAll: true,
50+
showCollapseAll: false,
5151
treeDataProvider: new MRTreeDataProvider(context),
5252
}),
5353
);

src/trees/depot.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@ import { IDepot } from '../typings/common';
55

66
interface IItem extends ITreeItem {
77
_create: boolean;
8+
_auth: boolean;
89
}
910

1011
const getCommand = (element: IDepot & IItem) => {
1112
if (element.children) return '';
13+
if (element._auth) return 'codingPlugin.auth';
1214
if (element._create) return 'codingPlugin.createDepot';
1315
return 'codingPlugin.depotTreeItemClick';
1416
};
@@ -19,7 +21,22 @@ class DepotTreeDataProvider extends hx.TreeDataProvider {
1921
this.context = context;
2022
}
2123

24+
getUser() {
25+
return this.context.codingServer.session?.user;
26+
}
27+
2228
async getChildren(element: IDepot & IItem) {
29+
const user = this.getUser();
30+
if (!user) {
31+
toast.warn('请先绑定 CODING 账户');
32+
return Promise.resolve([
33+
{
34+
name: '绑定 CODING 账户',
35+
_auth: true,
36+
},
37+
]);
38+
}
39+
2340
if (element) {
2441
return Promise.resolve(element.children);
2542
}

src/trees/mr.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import hx from 'hbuilderx';
22
import toast from '../utils/toast';
33
import { getMrListParams } from '../utils/mr';
4-
import { IMRItem, IRepoInfo, IReviewer } from '../typings/common';
4+
import { IMRItem, IReviewer } from '../typings/common';
55

66
interface IItem extends ITreeItem {
77
_disabled: boolean;
@@ -21,9 +21,13 @@ class MRTreeDataProvider extends hx.TreeDataProvider {
2121
}
2222

2323
getRepoInfo() {
24-
const { repoInfo, selectedDepot, depots, codingServer } = this.context;
24+
const { selectedDepot, depots, codingServer } = this.context;
2525
const user = codingServer.session?.user;
26-
return getMrListParams(repoInfo, selectedDepot, depots, user);
26+
return getMrListParams(selectedDepot, depots, user);
27+
}
28+
29+
getUser() {
30+
return this.context.codingServer.session?.user;
2731
}
2832

2933
async getChildren(element?: IMRItem & IItem) {
@@ -32,16 +36,16 @@ class MRTreeDataProvider extends hx.TreeDataProvider {
3236
}
3337

3438
try {
35-
const user = this.context.codingServer.session?.user;
39+
const user = this.getUser();
3640
const userId = user?.id;
3741

3842
const repoInfo = this.getRepoInfo();
3943

4044
if (!repoInfo) {
4145
return Promise.resolve([
4246
{
43-
title: '+ 创建仓库',
44-
_create: true,
47+
title: '请先从「CODING 仓库」列表指定仓库',
48+
_disabled: true,
4549
},
4650
]);
4751
}
@@ -73,14 +77,14 @@ class MRTreeDataProvider extends hx.TreeDataProvider {
7377
}
7478

7579
getTreeItem(element: IMRItem & IItem) {
76-
const repoInfo = this.getRepoInfo() as IRepoInfo;
80+
const user = this.getUser();
7781

7882
return {
7983
label: element.title,
8084
collapsibleState: element.children ? 1 : 0,
8185
command: {
8286
command: getCommand(element),
83-
arguments: [repoInfo?.team, element],
87+
arguments: [user?.team, element],
8488
},
8589
};
8690
}

src/utils/mr.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
import { IRepoInfo, IDepot, IUserInfo } from '../typings/common';
22

3-
export const getMrListParams = (
4-
repoInfo: IRepoInfo,
5-
selectedDepot: IDepot,
6-
depots: IDepot[],
7-
user: IUserInfo,
8-
): IRepoInfo | undefined => {
9-
const { team } = user;
3+
export const getMrListParams = (selectedDepot: IDepot, depots: IDepot[], user: IUserInfo): IRepoInfo | undefined => {
4+
const team = user?.team;
105
let depot = selectedDepot;
116

127
if (!depot) {
@@ -21,6 +16,4 @@ export const getMrListParams = (
2116
return { team, project, repo };
2217
}
2318
}
24-
25-
if (repoInfo) return repoInfo;
2619
};

0 commit comments

Comments
 (0)