@@ -42,6 +42,8 @@ export interface IVTourData {
4242 getNextStep: ComputedRef <ITourStep >;
4343}
4444
45+ const __saveKey = computed (() => " vjt-" + (props .name || " default" ));
46+
4547const _VTour: Ref <NanoPop | undefined > = ref (undefined );
4648const _Tooltip: Ref <HTMLElement | undefined > = ref (undefined );
4749const _CurrentStep: Reactive <IVTourData > = reactive ({
@@ -86,7 +88,7 @@ function startTour(): void {
8688 return ;
8789 if (props .saveToLocalStorage === " step" ) {
8890 _CurrentStep .currentStep = parseInt (
89- localStorage .getItem (" vjt- " + ( props . name || " default " ) ) || " 0"
91+ localStorage .getItem (__saveKey . value ) || " 0"
9092 );
9193 if (_CurrentStep .currentStep > 0 ) {
9294 _CurrentStep .lastStep = Math .max (_CurrentStep .currentStep - 1 , 0 );
@@ -128,7 +130,7 @@ function resetTour(restart: boolean): void {
128130 _CurrentStep .currentStep = 0 ;
129131 _CurrentStep .lastStep = 0 ;
130132 _CurrentStep .nextStep = 1 ;
131- localStorage .removeItem (" vjt- " + ( props . name || " default " ) );
133+ localStorage .removeItem (__saveKey . value );
132134 if (restart ) startTour ();
133135}
134136
@@ -162,7 +164,7 @@ async function lastStep() {
162164function endTour(): void {
163165 stopTour ();
164166 if (props .saveToLocalStorage !== " never" )
165- localStorage .setItem (" vjt- " + ( props . name || " default " ) , " true" );
167+ localStorage .setItem (__saveKey . value , " true" );
166168 emit (" onTourEnd" );
167169}
168170
@@ -209,10 +211,7 @@ async function updatePosition(): Promise<void> {
209211 }) || " right"
210212 );
211213 if (props .saveToLocalStorage === " step" )
212- localStorage .setItem (
213- " vjt-" + (props .name || " default" ),
214- _CurrentStep .currentStep .toString ()
215- );
214+ localStorage .setItem (__saveKey .value , _CurrentStep .currentStep .toString ());
216215 await _CurrentStep .getCurrentStep .onAfter ?.();
217216 emit (" onTourStep" );
218217}
@@ -236,17 +235,22 @@ function updateBackdrop(): void {
236235 else document .querySelector (" #vjt-backdrop" )! .setAttribute (" data-hidden" , " " );
237236}
238237
239- let resizeTimer: NodeJS .Timeout ;
238+ const redrawLayers = () => {
239+ if (localStorage .getItem (__saveKey .value ) === " true" ) return ;
240+ updatePosition ();
241+ updateHighlight ();
242+ updateBackdrop ();
243+ };
244+
245+ let resizeTimer: ReturnType <typeof setTimeout > | undefined = undefined ;
240246const debounceTime = computed (() => props .resizeTimeout || 250 );
241247
242248const onResizeEnd = () => {
243- updatePosition ();
244-
245249 clearTimeout (resizeTimer );
246250
247- resizeTimer = setTimeout (() => {
248- updatePosition ();
249- }, debounceTime .value );
251+ redrawLayers ();
252+
253+ resizeTimer = setTimeout (() => { redrawLayers (); }, debounceTime .value );
250254}
251255
252256onMounted (() => {
0 commit comments