@@ -4,34 +4,37 @@ import { IProblem } from "./shared";
4
4
class LeetCodePreviewProvider implements Disposable {
5
5
6
6
private context : ExtensionContext ;
7
+ private node : IProblem ;
7
8
private panel : WebviewPanel | undefined ;
8
9
9
10
public initialize ( context : ExtensionContext ) : void {
10
11
this . context = context ;
11
12
}
12
13
13
14
public async preview ( node : IProblem ) : Promise < void > {
15
+ this . node = node ;
14
16
if ( ! this . panel ) {
15
17
this . panel = window . createWebviewPanel ( "leetcode.preview" , "Preview Problem" , ViewColumn . Active , {
16
18
enableScripts : true ,
17
19
enableCommandUris : true ,
18
20
enableFindWidget : true ,
19
21
retainContextWhenHidden : true ,
20
22
} ) ;
21
- }
22
23
23
- this . panel . onDidDispose ( ( ) => {
24
- this . panel = undefined ;
25
- } , null , this . context . subscriptions ) ;
24
+ this . panel . webview . onDidReceiveMessage ( async ( message : IWebViewMessage ) => {
25
+ switch ( message . command ) {
26
+ case "ShowProblem" :
27
+ await commands . executeCommand ( "leetcode.showProblem" , this . node ) ;
28
+ this . dispose ( ) ;
29
+ return ;
30
+ }
31
+ } , this , this . context . subscriptions ) ;
32
+
33
+ this . panel . onDidDispose ( ( ) => {
34
+ this . panel = undefined ;
35
+ } , null , this . context . subscriptions ) ;
36
+ }
26
37
27
- this . panel . webview . onDidReceiveMessage ( async ( message : IWebViewMessage ) => {
28
- switch ( message . command ) {
29
- case "ShowProblem" :
30
- await commands . executeCommand ( "leetcode.showProblem" , node ) ;
31
- this . dispose ( ) ;
32
- return ;
33
- }
34
- } ) ;
35
38
this . panel . webview . html = await this . provideHtmlContent ( node ) ;
36
39
this . panel . title = node . name ;
37
40
this . panel . reveal ( ) ;
0 commit comments