Skip to content

Commit 49a96c6

Browse files
committed
Shows different "globe" tooltips on GitHub and Jira issues in StartWork
(#3774, #3775)
1 parent b779add commit 49a96c6

File tree

2 files changed

+33
-8
lines changed

2 files changed

+33
-8
lines changed

src/commands/quickCommand.buttons.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,11 @@ export const MergeQuickInputButton: QuickInputButton = {
132132
tooltip: 'Merge...',
133133
};
134134

135+
export const OpenOnJiraQuickInputButton: QuickInputButton = {
136+
iconPath: new ThemeIcon('globe'),
137+
tooltip: 'Open on Jira',
138+
};
139+
135140
export const OpenOnGitHubQuickInputButton: QuickInputButton = {
136141
iconPath: new ThemeIcon('globe'),
137142
tooltip: 'Open on GitHub',

src/plus/startWork/startWork.ts

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { md5 } from '@env/crypto';
22
import slug from 'slug';
3-
import type { QuickPick } from 'vscode';
3+
import type { QuickInputButton, QuickPick } from 'vscode';
44
import { Uri } from 'vscode';
55
import type {
66
AsyncStepResultGenerator,
@@ -18,11 +18,11 @@ import {
1818
QuickCommand,
1919
StepResultBreak,
2020
} from '../../commands/quickCommand';
21-
import { OpenOnGitHubQuickInputButton } from '../../commands/quickCommand.buttons';
21+
import { OpenOnGitHubQuickInputButton, OpenOnJiraQuickInputButton } from '../../commands/quickCommand.buttons';
2222
import { getSteps } from '../../commands/quickWizard.utils';
2323
import { proBadge } from '../../constants';
2424
import type { IntegrationId } from '../../constants.integrations';
25-
import { HostingIntegrationId, IssueIntegrationId } from '../../constants.integrations';
25+
import { HostingIntegrationId, IssueIntegrationId, SelfHostedIntegrationId } from '../../constants.integrations';
2626
import type { Source, Sources, StartWorkTelemetryContext } from '../../constants.telemetry';
2727
import type { Container } from '../../container';
2828
import type { Issue, IssueShape, SearchedIssue } from '../../git/models/issue';
@@ -414,7 +414,8 @@ export class StartWorkCommand extends QuickCommand<State> {
414414
opened: boolean,
415415
): StepResultGenerator<StartWorkItem | StartWorkTypeItem> {
416416
const buildIssueItem = (i: StartWorkItem) => {
417-
const buttons = i.item.issue.url ? [OpenOnGitHubQuickInputButton] : [];
417+
const onWebbButton = i.item.issue.url ? getOpenOnWebQuickInputButton(i.item.issue.provider.id) : undefined;
418+
const buttons = onWebbButton ? [onWebbButton] : [];
418419
return {
419420
label:
420421
i.item.issue.title.length > 60 ? `${i.item.issue.title.substring(0, 60)}...` : i.item.issue.title,
@@ -497,11 +498,18 @@ export class StartWorkCommand extends QuickCommand<State> {
497498
items: [],
498499
onDidActivate: updateItems,
499500
onDidClickItemButton: (_quickpick, button, { item }) => {
500-
if (button === OpenOnGitHubQuickInputButton && !isStartWorkTypeItem(item)) {
501-
this.open(item);
502-
return true;
501+
if (isStartWorkTypeItem(item)) {
502+
return false;
503+
}
504+
505+
switch (button) {
506+
case OpenOnGitHubQuickInputButton:
507+
case OpenOnJiraQuickInputButton:
508+
this.open(item);
509+
return true;
510+
default:
511+
return false;
503512
}
504-
return false;
505513
},
506514
});
507515

@@ -569,3 +577,15 @@ function isStartWorkTypeItem(item: unknown): item is StartWorkTypeItem {
569577
export function getStartWorkItemIdHash(item: StartWorkItem) {
570578
return md5(item.item.issue.id);
571579
}
580+
581+
function getOpenOnWebQuickInputButton(integrationId: string): QuickInputButton | undefined {
582+
switch (integrationId) {
583+
case HostingIntegrationId.GitHub:
584+
case SelfHostedIntegrationId.GitHubEnterprise:
585+
return OpenOnGitHubQuickInputButton;
586+
case IssueIntegrationId.Jira:
587+
return OpenOnJiraQuickInputButton;
588+
default:
589+
return undefined;
590+
}
591+
}

0 commit comments

Comments
 (0)