@@ -136,7 +136,7 @@ export class UriHandler implements vscode.UriHandler {
136136 return IssueOverviewPanel . createOrShow ( this . _telemetry , this . _context . extensionUri , folderManager , issue ) ;
137137 }
138138
139- private async _openPullRequestWebview ( uri : vscode . Uri ) : Promise < void > {
139+ private async _resolvePullRequestFromUri ( uri : vscode . Uri ) : Promise < { folderManager : FolderRepositoryManager ; pullRequest : PullRequestModel } | undefined > {
140140 const params = fromOpenOrCheckoutPullRequestWebviewUri ( uri ) ;
141141 if ( ! params ) {
142142 return ;
@@ -146,20 +146,23 @@ export class UriHandler implements vscode.UriHandler {
146146 if ( ! pullRequest ) {
147147 return ;
148148 }
149- return PullRequestOverviewPanel . createOrShow ( this . _telemetry , this . _context . extensionUri , folderManager , pullRequest ) ;
149+ return { folderManager, pullRequest } ;
150150 }
151151
152- private async _openPullRequestChanges ( uri : vscode . Uri ) : Promise < void > {
153- const params = fromOpenOrCheckoutPullRequestWebviewUri ( uri ) ;
154- if ( ! params ) {
152+ private async _openPullRequestWebview ( uri : vscode . Uri ) : Promise < void > {
153+ const resolved = await this . _resolvePullRequestFromUri ( uri ) ;
154+ if ( ! resolved ) {
155155 return ;
156156 }
157- const folderManager = this . _reposManagers . getManagerForRepository ( params . owner , params . repo ) ?? this . _reposManagers . folderManagers [ 0 ] ;
158- const pullRequest = await folderManager . resolvePullRequest ( params . owner , params . repo , params . pullRequestNumber ) ;
159- if ( ! pullRequest ) {
157+ return PullRequestOverviewPanel . createOrShow ( this . _telemetry , this . _context . extensionUri , resolved . folderManager , resolved . pullRequest ) ;
158+ }
159+
160+ private async _openPullRequestChanges ( uri : vscode . Uri ) : Promise < void > {
161+ const resolved = await this . _resolvePullRequestFromUri ( uri ) ;
162+ if ( ! resolved ) {
160163 return ;
161164 }
162- return PullRequestModel . openChanges ( folderManager , pullRequest ) ;
165+ return PullRequestModel . openChanges ( resolved . folderManager , resolved . pullRequest ) ;
163166 }
164167
165168 private async _savePendingCheckoutAndOpenFolder ( params : { owner : string ; repo : string ; pullRequestNumber : number } , folderUri : vscode . Uri ) : Promise < void > {
0 commit comments