@@ -62,8 +62,10 @@ export class TutorialManager implements ITutorialManager {
6262 }
6363
6464 get activeTutorial ( ) : ITutorial {
65- console . warn ( 'activeTutorial is deprecated' ) ;
66- return null ;
65+ const activeTutorial = this . _activeTutorials . filter ( tutorial =>
66+ tutorial . isRunning ( )
67+ ) ;
68+ return activeTutorial [ 0 ] ;
6769 }
6870
6971 /**
@@ -113,7 +115,7 @@ export class TutorialManager implements ITutorialManager {
113115 tutorials : ITutorial [ ] | string [ ] ,
114116 force = true
115117 ) : Promise < void > {
116- if ( ! tutorials || tutorials . length === 0 ) {
118+ if ( ! tutorials || tutorials . length === 0 || this . activeTutorial ) {
117119 return Promise . resolve ( ) ;
118120 }
119121 let tutorialGroup : Array < ITutorial | undefined > ;
@@ -136,18 +138,21 @@ export class TutorialManager implements ITutorialManager {
136138 ) ;
137139 }
138140
141+ const startTours = ( ) : void => {
142+ this . _activeTutorials = tutorialList ;
143+ this . _tutorialLaunched . emit ( tutorialList ) ;
144+ } ;
145+
139146 if ( tutorialList . length > 0 ) {
140147 if ( force ) {
141- this . _tutorialLaunched . emit ( tutorialList ) ;
148+ startTours ( ) ;
142149 } else {
143150 INotification . info ( `Try the ${ tutorialList [ 0 ] . label } .` , {
144151 autoClose : 10000 ,
145152 buttons : [
146153 {
147154 label : 'Start now' ,
148- callback : ( ) : void => {
149- this . _tutorialLaunched . emit ( tutorialList ) ;
150- }
155+ callback : startTours
151156 } ,
152157 {
153158 label : "Don't show me again" ,
@@ -210,6 +215,7 @@ export class TutorialManager implements ITutorialManager {
210215 } ) ;
211216 } ;
212217
218+ private _activeTutorials : Tutorial [ ] = new Array < Tutorial > ( ) ;
213219 private _defaultOptions : Partial < TutorialOptions > ;
214220 private _menu : MainMenu | undefined ;
215221 private _state : IManagerState = {
0 commit comments