diff --git a/docs-src/src/content/docs/guides/install.mdx b/docs-src/src/content/docs/guides/install.mdx index 5d53aa106..82b2835f9 100644 --- a/docs-src/src/content/docs/guides/install.mdx +++ b/docs-src/src/content/docs/guides/install.mdx @@ -50,11 +50,11 @@ with: ```html ``` diff --git a/landing/src/components/Header.astro b/landing/src/components/Header.astro index 13f06feba..6cf3c343a 100644 --- a/landing/src/components/Header.astro +++ b/landing/src/components/Header.astro @@ -162,3 +162,34 @@ const { isHome } = Astro.props; } + + diff --git a/landing/src/pages/index.astro b/landing/src/pages/index.astro index efeb468e9..914d43e4c 100644 --- a/landing/src/pages/index.astro +++ b/landing/src/pages/index.astro @@ -24,7 +24,7 @@ import MainPage from '@layouts/MainPage.astro'; - + `} lang="js" @@ -94,9 +94,25 @@ import MainPage from '@layouts/MainPage.astro'; // wait for shepherd to be ready setTimeout(function () { const shepherd = setupShepherd(); - const startBtn = document.querySelector('#showTour'); - - startBtn?.addEventListener('click', () => shepherd.start()); + + // Check if we should auto-start the tour (after redirect from another page) + const shouldStartTour = sessionStorage.getItem('startTourOnLoad'); + if (shouldStartTour) { + sessionStorage.removeItem('startTourOnLoad'); + shepherd.start(); + } + + // Clean up previous listener if it exists + if ((window as any).__startTourAbortController) { + (window as any).__startTourAbortController.abort(); + } + + // Create new AbortController for this listener + const controller = new AbortController(); + (window as any).__startTourAbortController = controller; + + // Listen for custom event from Demo button when already on home page + window.addEventListener('startTour', () => shepherd.start(), { signal: controller.signal }); }, 400); } @@ -296,7 +312,8 @@ import MainPage from '@layouts/MainPage.astro'; } function ready() { - document.addEventListener('DOMContentLoaded', init); + // Only listen for astro:page-load which fires on both initial load and transitions + document.addEventListener('astro:page-load', init); } ready(); diff --git a/shepherd.js/dummy/index.html b/shepherd.js/dummy/index.html index 3a28c2235..ce3ac30a0 100644 --- a/shepherd.js/dummy/index.html +++ b/shepherd.js/dummy/index.html @@ -122,7 +122,7 @@

Example