1- import { useCommand } from 'reactive-vscode' ;
21import * as vscode from 'vscode' ;
32
43const welcomeVersion = '3.0.6' ;
54
65let panel : vscode . WebviewPanel | undefined ;
76
87export function activate ( context : vscode . ExtensionContext ) {
9- useCommand ( 'vue.welcome' , ( ) => {
10- if ( panel ) {
11- panel . reveal ( vscode . ViewColumn . One ) ;
12- return ;
13- }
14-
15- panel = vscode . window . createWebviewPanel (
16- 'vue.welcome' ,
17- 'Welcome to Vue' ,
18- vscode . ViewColumn . One ,
19- { enableScripts : true } ,
20- ) ;
21-
22- panel . webview . html = getWelcomeHtml ( context ) ;
23- panel . webview . onDidReceiveMessage ( message => {
24- switch ( message . command ) {
25- case 'verifySponsor' :
26- vscode . commands . executeCommand ( 'vue.action.verify' ) ;
27- break ;
28- case 'toggleShowUpdates' :
29- context . globalState . update ( 'vue.showUpdates' , message . value ) ;
30- break ;
31- }
32- } ) ;
33-
34- panel . onDidDispose ( ( ) => {
35- panel = undefined ;
36- } ) ;
37- } ) ;
38-
398 if (
409 context . globalState . get ( 'vue.showUpdates' , true )
4110 && context . globalState . get ( 'vue-welcome' ) !== welcomeVersion
@@ -45,6 +14,31 @@ export function activate(context: vscode.ExtensionContext) {
4514 }
4615}
4716
17+ export function executeWelcome ( context : vscode . ExtensionContext ) {
18+ if ( panel ) {
19+ panel . reveal ( vscode . ViewColumn . One ) ;
20+ return ;
21+ }
22+ panel = vscode . window . createWebviewPanel (
23+ 'vue.welcome' ,
24+ 'Welcome to Vue' ,
25+ vscode . ViewColumn . One ,
26+ { enableScripts : true } ,
27+ ) ;
28+ panel . webview . html = getWelcomeHtml ( context ) ;
29+ panel . webview . onDidReceiveMessage ( message => {
30+ switch ( message . command ) {
31+ case 'verifySponsor' :
32+ vscode . commands . executeCommand ( 'vue.action.verify' ) ;
33+ break ;
34+ case 'toggleShowUpdates' :
35+ context . globalState . update ( 'vue.showUpdates' , message . value ) ;
36+ break ;
37+ }
38+ } ) ;
39+ panel . onDidDispose ( ( ) => panel = undefined ) ;
40+ }
41+
4842function getWelcomeHtml ( context : vscode . ExtensionContext ) {
4943 const version = context . extension . packageJSON . version ;
5044 return /* HTML */ `
@@ -339,7 +333,7 @@ function getWelcomeHtml(context: vscode.ExtensionContext) {
339333 <input type="checkbox" onchange="toggleShowUpdates(this.checked)" ${
340334 context . globalState . get ( 'vue.showUpdates' , true ) ? 'checked' : ''
341335 } >
342- <span>Show release notes on every significant update</span>
336+ <span>Show release notes on update</span>
343337 </label>
344338 </div>
345339
0 commit comments