Skip to content

Commit 5741868

Browse files
committed
fix: empty workspace logic
1 parent ea86059 commit 5741868

File tree

6 files changed

+38
-26
lines changed

6 files changed

+38
-26
lines changed

src/extension.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import WebviewProvider from './webview';
33
import CodingServer from './services/codingServer';
44
import ACTIONS, { dispatch } from './utils/actions';
55
import { proxyCtx } from './utils/proxy';
6+
import toast from './utils/toast';
67

78
const accessToken = '1b7fca3bd7594a89b0f5e2a0250c1147';
89
const user = {
@@ -47,7 +48,7 @@ async function activate(context: IContext) {
4748
}
4849

4950
function deactivate() {
50-
console.log('plugin deactivate');
51+
toast.info('plugin deactivate');
5152
}
5253

5354
export { activate, deactivate };

src/init.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ import ACTIONS, { dispatch } from './utils/actions';
88
import { IDepot, IMRItem } from './typings/common';
99

1010
export function registerCommands(context: IContext) {
11-
const { repoInfo, codingServer } = context;
12-
const { team } = repoInfo;
11+
const { codingServer } = context;
1312

1413
context.subscriptions.push(
1514
hx.commands.registerCommand('codingPlugin.helloWorld', () => {
@@ -38,6 +37,7 @@ export function registerCommands(context: IContext) {
3837
const depot = await hx.window.showInputBox({
3938
prompt: '请输入仓库名',
4039
});
40+
const team = codingServer.session?.user?.team;
4141
const result = await codingServer.createDepot(team, depot, depot);
4242
// TODO: 拉取代码,更新workspace
4343
}),

src/services/codingServer.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import axios from '../utils/axios';
55
import git from 'isomorphic-git';
66
import { IRepoInfo, ISessionData } from '../typings/common';
77
import { parseCloneUrl } from '../utils/repo';
8+
import toast from '../utils/toast';
89

910
export default class CodingServer {
1011
_session!: ISessionData;
@@ -31,15 +32,15 @@ export default class CodingServer {
3132
const folders = await hx.workspace.getWorkspaceFolders();
3233

3334
if (!folders.length) {
34-
console.warn('workspace中没有目录');
35+
toast.warn('workspace中没有目录');
3536
return;
3637
}
3738

3839
try {
3940
const remotes = await git.listRemotes({ fs, dir: folders[0].uri.path });
4041
return parseCloneUrl(remotes[0].url);
4142
} catch {
42-
console.error('该目录没有进行git初始化');
43+
toast.error('该目录没有进行git初始化');
4344
}
4445
}
4546

@@ -54,7 +55,7 @@ export default class CodingServer {
5455
});
5556

5657
if (result.code) {
57-
console.error(result.msg);
58+
toast.error(result.msg);
5859
return Promise.reject(result.msg);
5960
}
6061

@@ -95,16 +96,18 @@ export default class CodingServer {
9596
access_token: this._session.accessToken,
9697
},
9798
});
99+
100+
if (result.code) {
101+
toast.error(result.msg);
102+
return Promise.reject(result.msg);
103+
}
104+
98105
return result?.data?.depots || [];
99106
} catch (err) {
100107
throw new Error(err);
101108
}
102109
}
103110

104-
async createProjectAndDepot(team: string, payload: { project: string; depot: string }) {
105-
return 'createProjectAndDepot';
106-
}
107-
108111
async createDepot(team: string = this._repo?.team, project: string = this._repo?.project, depot: string) {
109112
try {
110113
const result = await axios({
@@ -120,7 +123,6 @@ export default class CodingServer {
120123
shared: false,
121124
}),
122125
});
123-
console.log('result => ', result);
124126
} catch (err) {
125127
throw new Error(err);
126128
}

src/trees/depot.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import hx from 'hbuilderx';
22
import ACTIONS, { dispatch } from '../utils/actions';
3+
import toast from '../utils/toast';
34
import { IDepot } from '../typings/common';
45

56
interface IItem extends ITreeItem {
@@ -33,16 +34,13 @@ class DepotTreeDataProvider extends hx.TreeDataProvider {
3334

3435
return Promise.resolve([
3536
{
36-
name: '创建仓库',
37+
name: '+ 创建仓库',
3738
_create: true,
3839
},
39-
{
40-
name: '仓库列表',
41-
children: depots,
42-
},
40+
...depots,
4341
]);
4442
} catch {
45-
console.error('获取仓库列表失败');
43+
toast.error('获取仓库列表失败');
4644
}
4745
}
4846

src/trees/mr.ts

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,15 @@ import { IMRItem, IRepoInfo, IReviewer } from '../typings/common';
55

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

11+
const getCommand = (element: IMRItem & IItem) => {
12+
if (element.children || element._disabled) return '';
13+
if (element._create) return 'codingPlugin.createDepot';
14+
return 'codingPlugin.mrTreeItemClick';
15+
};
16+
1017
class MRTreeDataProvider extends hx.TreeDataProvider {
1118
constructor(context: IContext) {
1219
super();
@@ -31,8 +38,12 @@ class MRTreeDataProvider extends hx.TreeDataProvider {
3138
const repoInfo = this.getRepoInfo();
3239

3340
if (!repoInfo) {
34-
toast.warn('请先到扩展视图`CODING 仓库`中创建仓库');
35-
return;
41+
return Promise.resolve([
42+
{
43+
title: '+ 创建仓库',
44+
_create: true,
45+
},
46+
]);
3647
}
3748

3849
const list = await this.context.codingServer.getMrList(repoInfo);
@@ -47,16 +58,16 @@ class MRTreeDataProvider extends hx.TreeDataProvider {
4758
_disabled: true,
4859
},
4960
{
50-
title: `Created By Me (${createdList.length})`,
61+
title: `Created By Me (${createdList?.length})`,
5162
children: createdList,
5263
},
5364
{
54-
title: `Waiting For My Review (${reviewerList.length})`,
65+
title: `Waiting For My Review (${reviewerList?.length})`,
5566
children: reviewerList,
5667
},
5768
]);
5869
} catch {
59-
console.error('获取MR列表失败');
70+
toast.error('获取MR列表失败');
6071
Promise.resolve([]);
6172
}
6273
}
@@ -68,8 +79,8 @@ class MRTreeDataProvider extends hx.TreeDataProvider {
6879
label: element.title,
6980
collapsibleState: element.children ? 1 : 0,
7081
command: {
71-
command: element.children || element._disabled ? '' : 'codingPlugin.mrTreeItemClick',
72-
arguments: [repoInfo.team, element],
82+
command: getCommand(element),
83+
arguments: [repoInfo?.team, element],
7384
},
7485
};
7586
}

src/webview.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export default class WebviewProvider {
1818

1919
createPanel() {
2020
const webviewPanel: IWebviewPanel = hx.window.createWebView('codingPlugin.webview', {
21-
enableScripts: true
21+
enableScripts: true,
2222
});
2323

2424
return webviewPanel;
@@ -51,7 +51,7 @@ export default class WebviewProvider {
5151
</script>
5252
<script>
5353
window.addEventListener("message", (msg) => {
54-
console.log('msg 222 => ', msg);
54+
console.log(msg);
5555
});
5656
</script>
5757
<script src='${fileInfo}'></script>

0 commit comments

Comments
 (0)