Skip to content

Commit 2494fd4

Browse files
Copilotalexr00
andcommitted
Add dynamic placeholder messages for labels, reviewers, and assignees selection
Co-authored-by: alexr00 <[email protected]>
1 parent b09c1f8 commit 2494fd4

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

src/github/issueOverview.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,13 +440,28 @@ export class IssueOverviewPanel<TItem extends IssueModel = IssueModel> extends W
440440

441441
quickPick.busy = true;
442442
quickPick.canSelectMany = true;
443+
quickPick.placeholder = vscode.l10n.t('Select labels');
443444
quickPick.show();
444445
quickPick.items = await (getLabelOptions(this._folderRepositoryManager, this._item.item.labels, this._item.remote.owner, this._item.remote.repositoryName).then(options => {
445446
newLabels = options.newLabels;
446447
return options.labelPicks;
447448
}));
448449
quickPick.selectedItems = quickPick.items.filter(item => item.picked);
449450

451+
// Update placeholder based on selection
452+
const updatePlaceholder = () => {
453+
if (quickPick.selectedItems.length === 0) {
454+
quickPick.placeholder = vscode.l10n.t('No labels selected');
455+
} else {
456+
quickPick.placeholder = vscode.l10n.t('Select labels');
457+
}
458+
};
459+
updatePlaceholder();
460+
461+
quickPick.onDidChangeSelection(() => {
462+
updatePlaceholder();
463+
});
464+
450465
quickPick.busy = false;
451466
const acceptPromise = asPromise<void>(quickPick.onDidAccept).then(() => {
452467
return quickPick.selectedItems;
@@ -519,10 +534,26 @@ export class IssueOverviewPanel<TItem extends IssueModel = IssueModel> extends W
519534
quickPick.busy = true;
520535
quickPick.canSelectMany = true;
521536
quickPick.matchOnDescription = true;
537+
quickPick.placeholder = vscode.l10n.t('Select assignees');
522538
quickPick.show();
523539
quickPick.items = await getAssigneesQuickPickItems(this._folderRepositoryManager, undefined, this._item.remote.remoteName, this._item.assignees ?? [], this._item);
524540
quickPick.selectedItems = quickPick.items.filter(item => item.picked);
525541

542+
// Update placeholder based on selection
543+
const updatePlaceholder = () => {
544+
const selectedAssignees = quickPick.selectedItems.filter(item => item.user);
545+
if (selectedAssignees.length === 0) {
546+
quickPick.placeholder = vscode.l10n.t('No assignees selected');
547+
} else {
548+
quickPick.placeholder = vscode.l10n.t('Select assignees');
549+
}
550+
};
551+
updatePlaceholder();
552+
553+
quickPick.onDidChangeSelection(() => {
554+
updatePlaceholder();
555+
});
556+
526557
quickPick.busy = false;
527558
const acceptPromise = asPromise<void>(quickPick.onDidAccept).then(() => {
528559
return quickPick.selectedItems.filter(item => item.user) as (vscode.QuickPickItem & { user: IAccount })[] | undefined;

src/github/quickPicks.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,22 @@ export async function reviewersQuickPick(folderRepositoryManager: FolderReposito
248248
};
249249

250250
await updateItems((teamsCount !== 0 && teamsCount <= quickMaxTeamReviewers) ? TeamReviewerRefreshKind.Try : TeamReviewerRefreshKind.None);
251+
252+
// Update placeholder based on selection
253+
const updatePlaceholder = () => {
254+
const selectedReviewers = quickPick.selectedItems.filter(item => item.user);
255+
if (selectedReviewers.length === 0) {
256+
quickPick.placeholder = vscode.l10n.t('No reviewers selected');
257+
} else {
258+
quickPick.placeholder = defaultPlaceholder;
259+
}
260+
};
261+
updatePlaceholder();
262+
263+
quickPick.onDidChangeSelection(() => {
264+
updatePlaceholder();
265+
});
266+
251267
quickPick.onDidTriggerButton(() => {
252268
quickPick.busy = true;
253269
quickPick.ignoreFocusOut = true;

0 commit comments

Comments
 (0)