Made the popover logic more responsive to changes in the tour state.

This commit is contained in:
Dean 2023-03-13 14:39:36 +00:00
parent 19d7c94a22
commit 567b9418a3
2 changed files with 5 additions and 13 deletions

View File

@ -15,20 +15,12 @@
$: tourKey = $store.tourKey $: tourKey = $store.tourKey
$: tourStepKey = $store.tourStepKey $: tourStepKey = $store.tourStepKey
const initTour = targetKey => { const updateTourStep = (targetStepKey, tourKey) => {
if (!targetKey) { if (!tourKey) {
return return
} }
tourSteps = [...TOURS[targetKey]]
tourStepIdx = 0
tourStep = { ...tourSteps[tourStepIdx] }
}
$: initTour(tourKey)
const updateTourStep = targetStepKey => {
if (!tourSteps?.length) { if (!tourSteps?.length) {
return tourSteps = [...TOURS[tourKey]]
} }
tourStepIdx = getCurrentStepIdx(tourSteps, targetStepKey) tourStepIdx = getCurrentStepIdx(tourSteps, targetStepKey)
lastStep = tourStepIdx + 1 == tourSteps.length lastStep = tourStepIdx + 1 == tourSteps.length
@ -36,7 +28,7 @@
tourStep.onLoad() tourStep.onLoad()
} }
$: updateTourStep(tourStepKey) $: updateTourStep(tourStepKey, tourKey)
const showPopover = (tourStep, tourNodes, popover) => { const showPopover = (tourStep, tourNodes, popover) => {
if (!tourStep) { if (!tourStep) {

View File

@ -15,7 +15,6 @@
if (ready && !registered && tourKey) { if (ready && !registered && tourKey) {
currentTourStep = TOURS[tourKey].find(step => step.id === stepKey) currentTourStep = TOURS[tourKey].find(step => step.id === stepKey)
if (!currentTourStep) { if (!currentTourStep) {
console.log("Could not find tour step : ", stepKey)
return return
} }
const elem = document.querySelector(currentTourStep.query) const elem = document.querySelector(currentTourStep.query)
@ -30,6 +29,7 @@
onMount(() => { onMount(() => {
ready = true ready = true
}) })
onDestroy(() => { onDestroy(() => {
if (handler) { if (handler) {
handler.destroy() handler.destroy()