Skip to content

Commit 5748015

Browse files
Copilotalexr00
andcommitted
Fix promise resolution edge cases
- Handle case when user presses Enter with no selection - Make disposables optional to prevent undefined access Co-authored-by: alexr00 <38270282+alexr00@users.noreply.github.com>
1 parent 7bb0a53 commit 5748015

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

src/commands.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1629,23 +1629,26 @@ ${contents}
16291629
quickPick.busy = false;
16301630

16311631
// Handle selection
1632-
let acceptDisposable: vscode.Disposable;
1633-
let hideDisposable: vscode.Disposable;
1632+
let acceptDisposable: vscode.Disposable | undefined;
1633+
let hideDisposable: vscode.Disposable | undefined;
16341634
const selected = await new Promise<(vscode.QuickPickItem & { pr?: PullRequestModel }) | string | undefined>((resolve) => {
16351635
acceptDisposable = quickPick.onDidAccept(() => {
16361636
if (quickPick.selectedItems.length > 0) {
16371637
resolve(quickPick.selectedItems[0]);
16381638
} else if (quickPick.value) {
16391639
// User typed something but didn't select from list
16401640
resolve(quickPick.value);
1641+
} else {
1642+
// User pressed Enter with no selection and no input
1643+
resolve(undefined);
16411644
}
16421645
});
16431646
hideDisposable = quickPick.onDidHide(() => resolve(undefined));
16441647
});
16451648

16461649
// Clean up event listeners
1647-
acceptDisposable.dispose();
1648-
hideDisposable.dispose();
1650+
acceptDisposable?.dispose();
1651+
hideDisposable?.dispose();
16491652

16501653
quickPick.hide();
16511654
quickPick.dispose();

0 commit comments

Comments
 (0)