Skip to content

Commit 2b188e0

Browse files
committed
feat(mr): change reviewers.
1 parent f5ec00a commit 2b188e0

File tree

6 files changed

+26
-24
lines changed

6 files changed

+26
-24
lines changed

src/extension.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export async function activate(context: vscode.ExtensionContext) {
6161
Panel.currentPanel?.broadcast(`mr.update.activities`, activityResp.data);
6262
});
6363
codingSrv.getMRReviewers(mr.iid).then((reviewerResp) => {
64-
Panel.currentPanel?.broadcast(`mr.update.reviewers`, reviewerResp.data);
64+
Panel.currentPanel?.broadcast(`mr.reviewers.init`, reviewerResp.data);
6565
});
6666
codingSrv.getMRComments(mr.iid).then((commentResp) => {
6767
Panel.currentPanel?.broadcast(`mr.udpate.comments`, commentResp.data);

src/panel.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ export class Panel {
106106
break;
107107
case 'mr.update.reviewers': {
108108
try {
109-
const [iid, selected]: [string, number[]] = args;
109+
const { iid, list: selected }: { iid: string; list: number[] } = args;
110110
const {
111111
data: { list: memberList },
112112
} = await this._codingSrv.getProjectMembers();
@@ -140,7 +140,7 @@ export class Panel {
140140

141141
await Promise.all(tasks);
142142
const resp = await this._codingSrv.getMRReviewers(iid);
143-
this.broadcast(command, resp.data);
143+
this._replyMessage(message, resp.data);
144144
} catch (err) {}
145145
break;
146146
}

src/typings/respResult.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,13 @@ export interface IReviewer {
165165
volunteer: string;
166166
}
167167

168+
export interface IMRReviewers {
169+
volunteer_reviewers: IReviewer[];
170+
reviewers: IReviewer[];
171+
}
172+
168173
export interface IMRReviewersResponse extends CodingResponse {
169-
data: {
170-
volunteer_reviewers: IReviewer[];
171-
reviewers: IReviewer[];
172-
};
174+
data: IMRReviewers;
173175
}
174176

175177
export interface IComment {

webviews/hooks/messageTransferHook.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { actions } from 'webviews/store/constants';
55
export default function messageTransferHook() {
66
useEffect(() => {
77
window.addEventListener('message', (ev) => {
8-
const { updateCurrentMR, toggleMRLoading } = appStore;
8+
const { updateCurrentMR, toggleMRLoading, initMRReviewers } = appStore;
99
const { command, res } = ev?.data;
1010

1111
switch (command) {
@@ -17,6 +17,10 @@ export default function messageTransferHook() {
1717
updateCurrentMR(res);
1818
break;
1919
}
20+
case actions.MR_REVIEWERS_INIT: {
21+
initMRReviewers(res);
22+
break;
23+
}
2024
default:
2125
break;
2226
}

webviews/store/appStore.ts

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,26 @@
11
import { autoEffect, clearEffect, store } from '@risingstack/react-easy-state';
22
import { IMRWebViewDetail } from 'src/typings/commonTypes';
3-
import { IActivity, IReviewer, IComment } from 'src/typings/respResult';
3+
import { IActivity, IComment, IMRReviewers } from 'src/typings/respResult';
44
import { vscode } from 'webviews/constants/vscode';
55
import { actions } from 'webviews/store/constants';
66
import { MERGE_STATUS } from 'webviews/constants/mergeRequest';
77
import { getMessageHandler } from 'webviews/utils/message';
88

9-
interface IReviewers {
10-
volunteer_reviewers: IReviewer[];
11-
reviewers: IReviewer[];
12-
}
13-
149
const appStore = store({
1510
currentMR: (vscode.getState()?.currentMR || {}) as IMRWebViewDetail,
1611
activities: (vscode.getState()?.activities || []) as IActivity[],
1712
reviewers: (vscode.getState()?.reviewers || {
1813
volunteer_reviewers: [],
1914
reviewers: [],
20-
}) as IReviewers,
15+
}) as IMRReviewers,
2116
comments: (vscode.getState()?.comments || []) as IComment[],
2217
updateCurrentMR(data: IMRWebViewDetail) {
2318
appStore.currentMR = data;
2419
},
2520
updateMRActivities(data: IActivity[]) {
2621
appStore.activities = data;
2722
},
28-
updateMRReviewers(data: IReviewers) {
23+
updateMRReviewers(data: IMRReviewers) {
2924
appStore.reviewers = data;
3025
},
3126
updateMRComments(data: IComment[]) {
@@ -115,11 +110,12 @@ const appStore = store({
115110
return result;
116111
},
117112
async updateReviewers(iid: string, list: number[]) {
118-
const result = await getMessageHandler(appStore.messageHandler)().postMessage({
113+
const resp = await getMessageHandler(appStore.messageHandler)().postMessage({
119114
command: actions.MR_UPDATE_REVIEWERS,
120-
args: [iid, list],
115+
args: { iid, list },
121116
});
122-
return result;
117+
appStore.reviewers = resp;
118+
return;
123119
},
124120
toggleUpdatingDesc(status?: boolean) {
125121
if (typeof status === `undefined`) {
@@ -149,8 +145,11 @@ const appStore = store({
149145
addComment(comment: IComment) {
150146
appStore.comments.push(comment);
151147
},
148+
initMRReviewers(list: IMRReviewers) {
149+
appStore.reviewers = list;
150+
},
152151
messageHandler(message: any) {
153-
const { updateMRActivities, updateMRReviewers, updateMRComments } = appStore;
152+
const { updateMRActivities, updateMRComments } = appStore;
154153
const { command, res } = message;
155154

156155
switch (command) {
@@ -162,10 +161,6 @@ const appStore = store({
162161
updateMRComments(res);
163162
break;
164163
}
165-
case actions.MR_UPDATE_REVIEWERS: {
166-
res && updateMRReviewers(res);
167-
break;
168-
}
169164
case actions.MR_ADD_COMMENT: {
170165
}
171166
default:

webviews/store/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ export enum actions {
1212
MR_TOGGLE_LOADING = `mr.update.toggleLoading`,
1313
MR_UPDATE_REVIEWERS = `mr.update.reviewers`,
1414
MR_UPDATE_DESC = `mr.update.desc`,
15+
MR_REVIEWERS_INIT = `mr.reviewers.init`,
1516
}

0 commit comments

Comments
 (0)