Skip to content

Commit b60fc7f

Browse files
alexr00RMacfarlane
authored andcommitted
Fix build for API change (#2289)
1 parent 1bffdbe commit b60fc7f

File tree

2 files changed

+26
-22
lines changed

2 files changed

+26
-22
lines changed

src/issues/issueFeatureRegistrar.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { IssueCompletionProvider } from './issueCompletionProvider';
1212
import { NewIssue, createGithubPermalink, USER_EXPRESSION, ISSUES_CONFIGURATION, QUERIES_CONFIGURATION, pushAndCreatePR } from './util';
1313
import { UserCompletionProvider } from './userCompletionProvider';
1414
import { StateManager } from './stateManager';
15-
import { IssuesTreeData } from './issuesView';
15+
import { IssuesTreeData, IssueUriTreeItem } from './issuesView';
1616
import { IssueModel } from '../github/issueModel';
1717
import { CurrentIssue } from './currentIssue';
1818
import { ReviewManager } from '../view/reviewManager';
@@ -158,7 +158,7 @@ export class IssueFeatureRegistrar implements vscode.Disposable {
158158
this.telemetry.sendTelemetryEvent('issue.getCurrent');
159159
return this.getCurrent();
160160
}, this));
161-
this.context.subscriptions.push(vscode.commands.registerCommand('issue.editQuery', (query: vscode.TreeItem) => {
161+
this.context.subscriptions.push(vscode.commands.registerCommand('issue.editQuery', (query: IssueUriTreeItem) => {
162162
/* __GDPR__
163163
"issue.editQuery" : {}
164164
*/
@@ -319,7 +319,7 @@ export class IssueFeatureRegistrar implements vscode.Disposable {
319319
}
320320
}
321321

322-
async editQuery(query: vscode.TreeItem) {
322+
async editQuery(query: IssueUriTreeItem) {
323323
const config = vscode.workspace.getConfiguration(ISSUES_CONFIGURATION);
324324
const inspect = config.inspect<{ label: string, query: string }[]>(QUERIES_CONFIGURATION);
325325
let command: string;
@@ -336,7 +336,7 @@ export class IssueFeatureRegistrar implements vscode.Disposable {
336336
const editor = vscode.window.activeTextEditor;
337337
if (editor) {
338338
const text = editor.document.getText();
339-
const search = text.search(query.label!);
339+
const search = text.search(query.labelAsString!);
340340
if (search >= 0) {
341341
const position = editor.document.positionAt(search);
342342
editor.revealRange(new vscode.Range(position, position));

src/issues/issuesView.ts

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,17 @@ import { ReposManagerState, FolderRepositoryManager } from '../github/folderRepo
1212
import { IssueModel } from '../github/issueModel';
1313
import { issueBodyHasLink } from './issueLinkLookup';
1414

15-
class UriTreeItem extends vscode.TreeItem2 {
15+
export class IssueUriTreeItem extends vscode.TreeItem2 {
1616
constructor(public readonly uri: vscode.Uri | undefined, label: string, collapsibleState?: vscode.TreeItemCollapsibleState) {
17-
super({ label }, collapsibleState);
17+
super(label, collapsibleState);
18+
}
19+
20+
get labelAsString(): string | undefined {
21+
return typeof this.label === 'string' ? this.label : this.label?.label;
1822
}
1923
}
2024

21-
export class IssuesTreeData implements vscode.TreeDataProvider<FolderRepositoryManager | IssueItem | MilestoneItem | UriTreeItem> {
25+
export class IssuesTreeData implements vscode.TreeDataProvider<FolderRepositoryManager | IssueItem | MilestoneItem | IssueUriTreeItem> {
2226
private _onDidChangeTreeData: vscode.EventEmitter<FolderRepositoryManager | IssueItem | MilestoneItem | null | undefined | void> = new vscode.EventEmitter();
2327
public onDidChangeTreeData: vscode.Event<FolderRepositoryManager | IssueItem | MilestoneItem | null | undefined | void> = this._onDidChangeTreeData.event;
2428

@@ -35,19 +39,19 @@ export class IssuesTreeData implements vscode.TreeDataProvider<FolderRepositoryM
3539
}));
3640
}
3741

38-
getTreeItem(element: FolderRepositoryManager | IssueItem | MilestoneItem | UriTreeItem): UriTreeItem {
39-
let treeItem: UriTreeItem;
40-
if (element instanceof UriTreeItem) {
42+
getTreeItem(element: FolderRepositoryManager | IssueItem | MilestoneItem | IssueUriTreeItem): IssueUriTreeItem {
43+
let treeItem: IssueUriTreeItem;
44+
if (element instanceof IssueUriTreeItem) {
4145
treeItem = element;
4246
} else if (element instanceof FolderRepositoryManager) {
43-
treeItem = new UriTreeItem(element.repository.rootUri, path.basename(element.repository.rootUri.fsPath), vscode.TreeItemCollapsibleState.Expanded);
47+
treeItem = new IssueUriTreeItem(element.repository.rootUri, path.basename(element.repository.rootUri.fsPath), vscode.TreeItemCollapsibleState.Expanded);
4448
} else if (!(element instanceof IssueModel)) {
45-
treeItem = new UriTreeItem(element.uri, element.milestone.title, element.issues.length > 0 ? vscode.TreeItemCollapsibleState.Expanded : vscode.TreeItemCollapsibleState.None);
49+
treeItem = new IssueUriTreeItem(element.uri, element.milestone.title, element.issues.length > 0 ? vscode.TreeItemCollapsibleState.Expanded : vscode.TreeItemCollapsibleState.None);
4650
} else {
47-
treeItem = new UriTreeItem(undefined, `${element.number}: ${element.title}`, vscode.TreeItemCollapsibleState.None);
51+
treeItem = new IssueUriTreeItem(undefined, `${element.number}: ${element.title}`, vscode.TreeItemCollapsibleState.None);
4852
treeItem.iconPath = element.isOpen ? new vscode.ThemeIcon('issues') : new vscode.ThemeIcon('issue-closed');
4953
if (this.stateManager.currentIssue(element.uri)?.issue.number === element.number) {
50-
treeItem.label = `✓ ${treeItem.label.label}`;
54+
treeItem.label = `✓ ${treeItem.label!}`;
5155
treeItem.contextValue = 'currentissue';
5256
} else {
5357
const savedState = this.stateManager.getSavedIssueState(element.number);
@@ -64,7 +68,7 @@ export class IssuesTreeData implements vscode.TreeDataProvider<FolderRepositoryM
6468
return treeItem;
6569
}
6670

67-
getChildren(element: FolderRepositoryManager | IssueItem | MilestoneItem | UriTreeItem | undefined): FolderRepositoryManager[] | Promise<(IssueItem | MilestoneItem)[]> | IssueItem[] | UriTreeItem[] {
71+
getChildren(element: FolderRepositoryManager | IssueItem | MilestoneItem | IssueUriTreeItem | undefined): FolderRepositoryManager[] | Promise<(IssueItem | MilestoneItem)[]> | IssueItem[] | IssueUriTreeItem[] {
6872
if ((element === undefined) && (this.manager.state !== ReposManagerState.RepositoriesLoaded)) {
6973
return this.getStateChildren();
7074
} else {
@@ -79,30 +83,30 @@ export class IssuesTreeData implements vscode.TreeDataProvider<FolderRepositoryM
7983
return item;
8084
}
8185

82-
getStateChildren(): UriTreeItem[] {
86+
getStateChildren(): IssueUriTreeItem[] {
8387
if (this.manager.state === ReposManagerState.NeedsAuthentication) {
8488
return [];
8589
} else {
86-
return [new UriTreeItem(undefined, 'Loading...')];
90+
return [new IssueUriTreeItem(undefined, 'Loading...')];
8791
}
8892
}
8993

90-
getQueryItems(folderManager: FolderRepositoryManager): Promise<(IssueItem | MilestoneItem)[]> | UriTreeItem[] {
94+
getQueryItems(folderManager: FolderRepositoryManager): Promise<(IssueItem | MilestoneItem)[]> | IssueUriTreeItem[] {
9195
const issueCollection = this.stateManager.getIssueCollection(folderManager.repository.rootUri);
9296
if (issueCollection.size === 1) {
9397
return Array.from(issueCollection.values())[0];
9498
}
9599
const queryLabels = Array.from(issueCollection.keys());
96100
const firstLabel = queryLabels[0];
97101
return queryLabels.map(label => {
98-
const item = new UriTreeItem(folderManager.repository.rootUri, label);
102+
const item = new IssueUriTreeItem(folderManager.repository.rootUri, label);
99103
item.contextValue = 'query';
100104
item.collapsibleState = label === firstLabel ? vscode.TreeItemCollapsibleState.Expanded : vscode.TreeItemCollapsibleState.Collapsed;
101105
return item;
102106
});
103107
}
104108

105-
getIssuesChildren(element: FolderRepositoryManager | IssueItem | MilestoneItem | UriTreeItem | undefined): FolderRepositoryManager[] | Promise<(IssueItem | MilestoneItem)[]> | IssueItem[] | UriTreeItem[] {
109+
getIssuesChildren(element: FolderRepositoryManager | IssueItem | MilestoneItem | IssueUriTreeItem | undefined): FolderRepositoryManager[] | Promise<(IssueItem | MilestoneItem)[]> | IssueItem[] | IssueUriTreeItem[] {
106110
if (element === undefined) {
107111
// If there's only one query, don't display a title for it
108112
if (this.manager.folderManagers.length === 1) {
@@ -114,8 +118,8 @@ export class IssuesTreeData implements vscode.TreeDataProvider<FolderRepositoryM
114118
}
115119
} else if (element instanceof FolderRepositoryManager) {
116120
return this.getQueryItems(element);
117-
} else if (element instanceof UriTreeItem) {
118-
return element.uri ? this.stateManager.getIssueCollection(element.uri).get(element.label.label!) ?? [] : [];
121+
} else if (element instanceof IssueUriTreeItem) {
122+
return element.uri ? this.stateManager.getIssueCollection(element.uri).get(element.labelAsString!) ?? [] : [];
119123
} else if (!(element instanceof IssueModel)) {
120124
return element.issues.map(item => {
121125
const issueItem: IssueItem = Object.assign(item);

0 commit comments

Comments
 (0)