Skip to content

Commit f907046

Browse files
committed
refactor: pull out common QuickPick code
1 parent 55a8cde commit f907046

File tree

1 file changed

+23
-31
lines changed

1 file changed

+23
-31
lines changed

src/chat/commands/searchCLs.ts

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,22 @@ export interface SearchCommitsContinuation {
2222
endChromiumVersion: string;
2323
}
2424

25+
async function showQuickPick(
26+
quickPick: vscode.QuickPick<vscode.QuickPickItem>,
27+
) {
28+
return new Promise<string | undefined>((resolve) => {
29+
quickPick.onDidAccept(() => {
30+
resolve(quickPick.selectedItems[0].label);
31+
quickPick.dispose();
32+
});
33+
quickPick.onDidHide(() => {
34+
resolve(undefined);
35+
quickPick.dispose();
36+
});
37+
quickPick.show();
38+
});
39+
}
40+
2541
export async function searchCLs(
2642
chromiumRoot: vscode.Uri,
2743
_electronRoot: vscode.Uri,
@@ -62,8 +78,8 @@ export async function searchCLs(
6278
}
6379
}
6480

65-
let startChromiumVersion: string;
66-
let endChromiumVersion: string;
81+
let startChromiumVersion: string | undefined;
82+
let endChromiumVersion: string | undefined;
6783

6884
if (!continuation) {
6985
stream.progress("Fetching Chromium versions...");
@@ -84,26 +100,14 @@ export async function searchCLs(
84100
quickPick.step = 1;
85101
quickPick.totalSteps = 2;
86102

87-
const startVersion = await new Promise<string | undefined>((resolve) => {
88-
quickPick.onDidAccept(() => {
89-
resolve(quickPick.selectedItems[0].label);
90-
quickPick.dispose();
91-
});
92-
quickPick.onDidHide(() => {
93-
resolve(undefined);
94-
quickPick.dispose();
95-
});
96-
quickPick.show();
97-
});
103+
startChromiumVersion = await showQuickPick(quickPick);
98104

99-
if (!startVersion) {
105+
if (!startChromiumVersion) {
100106
return {};
101107
}
102108

103-
startChromiumVersion = startVersion;
104-
105109
const remainingVersions = versions.filter(
106-
(version) => compareChromiumVersions(version, startChromiumVersion) > 0,
110+
(version) => compareChromiumVersions(version, startChromiumVersion!) > 0,
107111
);
108112

109113
quickPick = vscode.window.createQuickPick();
@@ -115,23 +119,11 @@ export async function searchCLs(
115119
quickPick.step = 2;
116120
quickPick.totalSteps = 2;
117121

118-
const endVersion = await new Promise<string | undefined>((resolve) => {
119-
quickPick.onDidAccept(() => {
120-
resolve(quickPick.selectedItems[0].label);
121-
quickPick.dispose();
122-
});
123-
quickPick.onDidHide(() => {
124-
resolve(undefined);
125-
quickPick.dispose();
126-
});
127-
quickPick.show();
128-
});
122+
endChromiumVersion = await showQuickPick(quickPick);
129123

130-
if (!endVersion) {
124+
if (!endChromiumVersion) {
131125
return {};
132126
}
133-
134-
endChromiumVersion = endVersion;
135127
} else {
136128
({ startChromiumVersion, endChromiumVersion } = continuation);
137129
}

0 commit comments

Comments
 (0)