Skip to content

Commit fd10c04

Browse files
authored
fix: Refactor localStorage key usage in VTour component
1 parent e920b79 commit fd10c04

1 file changed

Lines changed: 17 additions & 13 deletions

File tree

src/components/VTour.vue

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ export interface IVTourData {
4242
getNextStep: ComputedRef<ITourStep>;
4343
}
4444
45+
const __saveKey = computed(() => "vjt-" + (props.name || "default"));
46+
4547
const _VTour: Ref<NanoPop | undefined> = ref(undefined);
4648
const _Tooltip: Ref<HTMLElement | undefined> = ref(undefined);
4749
const _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() {
162164
function 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;
240246
const debounceTime = computed(() => props.resizeTimeout || 250);
241247
242248
const 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
252256
onMounted(() => {

0 commit comments

Comments
 (0)