File tree 4 files changed +33
-27
lines changed
4 files changed +33
-27
lines changed Original file line number Diff line number Diff line change @@ -101,6 +101,30 @@ export class WebviewViewBase extends WebviewBase {
101
101
public readonly viewType : string ;
102
102
protected _view ?: vscode . WebviewView ;
103
103
104
+ constructor (
105
+ protected readonly _extensionUri : vscode . Uri ) {
106
+ super ( ) ;
107
+ }
108
+
109
+ protected resolveWebviewView (
110
+ webviewView : vscode . WebviewView ,
111
+ _context : vscode . WebviewViewResolveContext ,
112
+ _token : vscode . CancellationToken ) {
113
+ this . _view = webviewView ;
114
+ this . _webview = webviewView . webview ;
115
+ super . initialize ( ) ;
116
+ webviewView . webview . options = {
117
+ // Allow scripts in the webview
118
+ enableScripts : true ,
119
+
120
+ localResourceRoots : [ this . _extensionUri ] ,
121
+ } ;
122
+ this . _disposables . push ( this . _view . onDidDispose ( ( ) => {
123
+ this . _webview = undefined ;
124
+ this . _view = undefined ;
125
+ } ) ) ;
126
+ }
127
+
104
128
public show ( ) {
105
129
if ( this . _view ) {
106
130
this . _view . show ( ) ;
Original file line number Diff line number Diff line change @@ -20,11 +20,11 @@ export class PullRequestViewProvider extends WebviewViewBase implements vscode.W
20
20
private _existingReviewers : ReviewState [ ] = [ ] ;
21
21
22
22
constructor (
23
- private readonly _extensionUri : vscode . Uri ,
23
+ extensionUri : vscode . Uri ,
24
24
private readonly _folderRepositoryManager : FolderRepositoryManager ,
25
25
private _item : PullRequestModel ,
26
26
) {
27
- super ( ) ;
27
+ super ( extensionUri ) ;
28
28
29
29
this . registerFolderRepositoryListener ( ) ;
30
30
@@ -68,17 +68,7 @@ export class PullRequestViewProvider extends WebviewViewBase implements vscode.W
68
68
_context : vscode . WebviewViewResolveContext ,
69
69
_token : vscode . CancellationToken ,
70
70
) {
71
- this . _view = webviewView ;
72
- this . _webview = webviewView . webview ;
73
- super . initialize ( ) ;
74
-
75
- webviewView . webview . options = {
76
- // Allow scripts in the webview
77
- enableScripts : true ,
78
-
79
- localResourceRoots : [ this . _extensionUri ] ,
80
- } ;
81
-
71
+ super . resolveWebviewView ( webviewView , _context , _token ) ;
82
72
webviewView . webview . html = this . _getHtmlForWebview ( ) ;
83
73
84
74
this . updatePullRequest ( this . _item ) ;
Original file line number Diff line number Diff line change @@ -45,12 +45,12 @@ export class CreatePullRequestViewProvider extends WebviewViewBase implements vs
45
45
private _firstLoad : boolean = true ;
46
46
47
47
constructor (
48
- private readonly _extensionUri : vscode . Uri ,
48
+ extensionUri : vscode . Uri ,
49
49
private readonly _folderRepositoryManager : FolderRepositoryManager ,
50
50
private readonly _pullRequestDefaults : PullRequestDefaults ,
51
51
compareBranch : Branch ,
52
52
) {
53
- super ( ) ;
53
+ super ( extensionUri ) ;
54
54
55
55
this . _compareBranch = compareBranch ;
56
56
}
@@ -60,16 +60,7 @@ export class CreatePullRequestViewProvider extends WebviewViewBase implements vs
60
60
_context : vscode . WebviewViewResolveContext ,
61
61
_token : vscode . CancellationToken ,
62
62
) {
63
- this . _view = webviewView ;
64
- this . _webview = webviewView . webview ;
65
- super . initialize ( ) ;
66
- webviewView . webview . options = {
67
- // Allow scripts in the webview
68
- enableScripts : true ,
69
-
70
- localResourceRoots : [ this . _extensionUri ] ,
71
- } ;
72
-
63
+ super . resolveWebviewView ( webviewView , _context , _token ) ;
73
64
webviewView . webview . html = this . _getHtmlForWebview ( ) ;
74
65
75
66
if ( this . _firstLoad ) {
Original file line number Diff line number Diff line change @@ -40,8 +40,8 @@ export class IssueOverviewPanel<TItem extends IssueModel = IssueModel> extends W
40
40
const activeColumn = toTheSide
41
41
? vscode . ViewColumn . Beside
42
42
: vscode . window . activeTextEditor
43
- ? vscode . window . activeTextEditor . viewColumn
44
- : vscode . ViewColumn . One ;
43
+ ? vscode . window . activeTextEditor . viewColumn
44
+ : vscode . ViewColumn . One ;
45
45
46
46
// If we already have a panel, show it.
47
47
// Otherwise, create a new panel.
@@ -364,6 +364,7 @@ export class IssueOverviewPanel<TItem extends IssueModel = IssueModel> extends W
364
364
365
365
// Clean up our resources
366
366
this . _panel . dispose ( ) ;
367
+ this . _webview = undefined ;
367
368
368
369
while ( this . _disposables . length ) {
369
370
const x = this . _disposables . pop ( ) ;
You can’t perform that action at this time.
0 commit comments