3434 <button @click =" tour.previousStep" v-if =" !isMobile" >
3535 {{ $t("Previous step") }}
3636 </button >
37- <button class =" right" @click =" tour.steps[tour.currentStep].button.fn()"
37+ <button class =" right" @click =" () => tour.steps[tour.currentStep].button.fn()"
3838 v-if =" tour.steps[tour.currentStep].button" >
3939 {{ $t(tour.steps[tour.currentStep].button.text) }}
4040 </button >
@@ -98,7 +98,7 @@ import {
9898} from ' @vue/composition-api' ;
9999import Vue from ' vue' ;
100100import VueTour from ' vue-tour' ;
101- import { TourStep , TourStepIndex , TourSteps , useFakeTx , useTour } from ' ../composables/useTour' ;
101+ import { MountedReturnFn , TourStep , TourStepIndex , TourSteps , useFakeTx , useTour } from ' ../composables/useTour' ;
102102import { useWindowSize } from ' ../composables/useWindowSize' ;
103103import CaretRightIcon from ' ./icons/CaretRightIcon.vue' ;
104104
@@ -128,11 +128,7 @@ export default defineComponent({
128128 const nSteps: Ref <number > = ref (0 );
129129 const disableNextStep = ref (true );
130130
131- let unmounted: (
132- (args ? : { goingForward: boolean , ending? : boolean }) => Promise <null >)
133- | Promise <null >
134- | ((args ? : { goingForward: boolean , ending? : boolean }) => null )
135- | null = null ;
131+ let unmounted: MountedReturnFn | void ;
136132
137133 onMounted (() => {
138134 tourSetup ();
@@ -145,29 +141,27 @@ export default defineComponent({
145141 async function tourSetup() {
146142 await context .root .$nextTick (); // to ensure the DOM is ready
147143
144+ const step = steps [currentStep .value ];
145+
148146 // Update state
149147 nSteps .value = Object .keys (steps ).length ;
150148 disableNextStep .value = currentStep .value >= nSteps .value - 1
151- || !! steps [ currentStep . value ] .ui .isNextStepDisabled ;
149+ || !! step .ui .isNextStepDisabled ;
152150
153- if (steps [currentStep .value ].lifecycle ?.created ) {
154- await steps [currentStep .value ].lifecycle ! .created !({ goToNextStep , goingForward: true });
155- }
151+ await step .lifecycle ?.created ?.({ goToNextStep , goingForward: true });
156152
157- _addAttributes (steps [ currentStep . value ] .ui , currentStep .value );
153+ _addAttributes (step .ui , currentStep .value );
158154
159- if (steps [currentStep .value ].lifecycle ?.mounted ) {
160- unmounted = await steps [currentStep .value ].lifecycle ! .mounted !({ goToNextStep , goingForward: true });
161- }
155+ unmounted = await step .lifecycle ?.mounted ?.({ goToNextStep , goingForward: true });
162156
163- if (context .root .$route .path !== steps [ currentStep . value ] .path ) {
164- context .root .$router .push (steps [ currentStep . value ] .path );
157+ if (context .root .$route .path !== step .path ) {
158+ context .root .$router .push (step .path );
165159 }
166160
167161 await sleep (500 );
168162
169163 tour = context .root .$tours [' nimiq-tour' ];
170- tour ! .start (` ${currentStep .value } ` );
164+ tour .start (` ${currentStep .value } ` );
171165 loading .value = false ;
172166 }
173167
@@ -177,9 +171,9 @@ export default defineComponent({
177171 const app = document .querySelector (' #app main' ) as HTMLDivElement ;
178172
179173 if (loading .value || disconnected .value ) {
180- app ! .setAttribute (' data-non-interactable' , ' ' );
174+ app .setAttribute (' data-non-interactable' , ' ' );
181175 } else {
182- app ! .removeAttribute (' data-non-interactable' );
176+ app .removeAttribute (' data-non-interactable' );
183177 }
184178 });
185179
@@ -201,24 +195,20 @@ export default defineComponent({
201195 ) {
202196 const goingForward = futureStepIndex > currentStepIndex ;
203197
204- const { path : currentPage } = steps [currentStepIndex ];
205- const { path : futurePage , ui : futureUI, lifecycle : futureLifecycle } = steps [futureStepIndex ];
198+ const { path : currentPath } = steps [currentStepIndex ];
199+ const { path : futurePath , ui : futureUI, lifecycle : futureLifecycle } = steps [futureStepIndex ];
206200
207201 loading .value = true ;
208202 tour ! .stop ();
209203
210- if (unmounted ) {
211- await (await unmounted )! ({ goingForward });
212- }
204+ await unmounted ?.({ goingForward });
213205
214- if (futureLifecycle ?.created ) {
215- await (futureLifecycle .created ! )({ goToNextStep , goingForward });
216- }
206+ await futureLifecycle ?.created ?.({ goToNextStep , goingForward });
217207
218- if (futurePage !== currentPage && context .root .$route .fullPath !== futurePage ) {
208+ if (futurePath !== currentPath && context .root .$route .fullPath !== futurePath ) {
219209 try {
220210 // Default prepare DOM
221- context .root .$router .push (futurePage );
211+ context .root .$router .push (futurePath );
222212 await context .root .$nextTick ();
223213 } catch {
224214 // Ignore error
@@ -227,7 +217,7 @@ export default defineComponent({
227217
228218 _addAttributes (futureUI , futureStepIndex );
229219
230- if (futurePage !== currentPage ) {
220+ if (futurePath !== currentPath ) {
231221 await sleep (500 );
232222 }
233223
@@ -244,11 +234,7 @@ export default defineComponent({
244234 loading .value = false ;
245235 disableNextStep .value = futureStepIndex >= nSteps .value - 1 || !! futureUI .isNextStepDisabled ;
246236
247- if (futureLifecycle ?.mounted ) {
248- unmounted = await futureLifecycle ! .mounted !({ goToNextStep , goingForward });
249- } else {
250- unmounted = null ;
251- }
237+ unmounted = await futureLifecycle ?.mounted ?.({ goToNextStep , goingForward });
252238
253239 currentStep .value = futureStepIndex ;
254240 }
@@ -285,7 +271,7 @@ export default defineComponent({
285271 _removeAttributes (currentStep .value );
286272
287273 if (unmounted ) {
288- await ( await unmounted ) ! ({ ending: true , goingForward: false });
274+ await unmounted ({ ending: true , goingForward: false });
289275 }
290276
291277 // If user finalizes tour while it is loading, allow interaction again
0 commit comments