@@ -62,8 +62,10 @@ export class TutorialManager implements ITutorialManager {
62
62
}
63
63
64
64
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 ] ;
67
69
}
68
70
69
71
/**
@@ -113,7 +115,7 @@ export class TutorialManager implements ITutorialManager {
113
115
tutorials : ITutorial [ ] | string [ ] ,
114
116
force = true
115
117
) : Promise < void > {
116
- if ( ! tutorials || tutorials . length === 0 ) {
118
+ if ( ! tutorials || tutorials . length === 0 || this . activeTutorial ) {
117
119
return Promise . resolve ( ) ;
118
120
}
119
121
let tutorialGroup : Array < ITutorial | undefined > ;
@@ -136,18 +138,21 @@ export class TutorialManager implements ITutorialManager {
136
138
) ;
137
139
}
138
140
141
+ const startTours = ( ) : void => {
142
+ this . _activeTutorials = tutorialList ;
143
+ this . _tutorialLaunched . emit ( tutorialList ) ;
144
+ } ;
145
+
139
146
if ( tutorialList . length > 0 ) {
140
147
if ( force ) {
141
- this . _tutorialLaunched . emit ( tutorialList ) ;
148
+ startTours ( ) ;
142
149
} else {
143
150
INotification . info ( `Try the ${ tutorialList [ 0 ] . label } .` , {
144
151
autoClose : 10000 ,
145
152
buttons : [
146
153
{
147
154
label : 'Start now' ,
148
- callback : ( ) : void => {
149
- this . _tutorialLaunched . emit ( tutorialList ) ;
150
- }
155
+ callback : startTours
151
156
} ,
152
157
{
153
158
label : "Don't show me again" ,
@@ -210,6 +215,7 @@ export class TutorialManager implements ITutorialManager {
210
215
} ) ;
211
216
} ;
212
217
218
+ private _activeTutorials : Tutorial [ ] = new Array < Tutorial > ( ) ;
213
219
private _defaultOptions : Partial < TutorialOptions > ;
214
220
private _menu : MainMenu | undefined ;
215
221
private _state : IManagerState = {
0 commit comments