From 68f693cbc0c0986ae87ef09be45cc141ee7cbc0f Mon Sep 17 00:00:00 2001 From: konnorrogers Date: Tue, 10 Dec 2024 18:49:56 -0500 Subject: [PATCH 1/4] fix turbo caching stuff --- docs/_includes/base.njk | 1 + docs/_includes/page-demo.njk | 4 +- docs/assets/examples/page-demo/demo.js | 89 +++++++++++++------------- 3 files changed, 49 insertions(+), 45 deletions(-) diff --git a/docs/_includes/base.njk b/docs/_includes/base.njk index 733b36dfa..f988a0cc3 100644 --- a/docs/_includes/base.njk +++ b/docs/_includes/base.njk @@ -6,6 +6,7 @@ {% if noindex %}{% endif %} + {{ title }} diff --git a/docs/_includes/page-demo.njk b/docs/_includes/page-demo.njk index db32f58b5..f9ea52ae1 100644 --- a/docs/_includes/page-demo.njk +++ b/docs/_includes/page-demo.njk @@ -16,7 +16,7 @@ - + - + diff --git a/docs/assets/examples/page-demo/demo.js b/docs/assets/examples/page-demo/demo.js index 3e9801f44..80018d353 100644 --- a/docs/assets/examples/page-demo/demo.js +++ b/docs/assets/examples/page-demo/demo.js @@ -1,50 +1,53 @@ -await customElements.whenDefined('wa-checkbox'); -let container = document.getElementById('page_slots_demo'); -let fieldset = container.querySelector('fieldset'); -let iframe = container.querySelector('iframe'); -let stylesheets = Array.from(document.querySelectorAll("link[rel=stylesheet][href^='/dist/']")) - .map(i => i.outerHTML) - .join('\n'); -let includes = `${stylesheets} - - `; +async function run () { + await customElements.whenDefined('wa-checkbox'); + let container = document.getElementById('page_slots_demo'); -function render() { - let slots = Array.from(fieldset.querySelectorAll('wa-checkbox[name=slot]:is([data-wa-checked])')); - let slotsHTML = slots - .map(slot => { - let name = slot.getAttribute('value'); - let description = slot.getAttribute('data-description'); + if (!container) { return } - let tag = 'div'; - if (name.endsWith('header')) { - tag = 'header'; - } - if (name.endsWith('footer')) { - tag = 'footer'; - } - - return `<${tag} class="slot-content" slot="${name}"> - ${name || 'main (default)'} -

${description}

- `; - }) + let fieldset = container.querySelector('fieldset'); + let iframe = container.querySelector('iframe'); + let stylesheets = Array.from(document.querySelectorAll("link[rel=stylesheet][href^='/dist/']")) + .map(i => i.outerHTML) .join('\n'); - let page = iframe.contentDocument?.querySelector('wa-page'); + let includes = `${stylesheets} + + `; - if (page) { - page.innerHTML = slotsHTML; - } else { - iframe.srcdoc = `${includes}${slotsHTML}`; + function render() { + let slots = Array.from(fieldset.querySelectorAll('wa-checkbox[name=slot]:is([data-wa-checked])')); + let slotsHTML = slots + .map(slot => { + let name = slot.getAttribute('value'); + let description = slot.getAttribute('data-description'); + + let tag = 'div'; + if (name.endsWith('header')) { + tag = 'header'; + } + if (name.endsWith('footer')) { + tag = 'footer'; + } + + return `<${tag} class="slot-content" slot="${name}"> + ${name || 'main (default)'} +

${description}

+ `; + }) + .join('\n'); + let page = iframe.contentDocument?.querySelector('wa-page'); + + if (page) { + page.innerHTML = slotsHTML; + } else { + iframe.srcdoc = `${includes}${slotsHTML}`; + } } + fieldset?.addEventListener('input', render); + render(); } -fieldset?.addEventListener('input', render); -render(); -// -// TODO - fix Turbo caching. When this is removed, visiting the docs via Turbo will cause the - + + diff --git a/docs/assets/examples/page-demo/demo.js b/docs/assets/examples/page-demo/demo.js index 3f5588e63..2da84b29a 100644 --- a/docs/assets/examples/page-demo/demo.js +++ b/docs/assets/examples/page-demo/demo.js @@ -1,54 +1,43 @@ -async function run() { - await customElements.whenDefined('wa-checkbox'); - let container = document.getElementById('page_slots_demo'); +await customElements.whenDefined('wa-checkbox'); +let container = document.getElementById('page_slots_demo'); - if (!container) { - return; - } +let fieldset = container.querySelector('fieldset'); +let iframe = container.querySelector('iframe'); +let stylesheets = Array.from(document.querySelectorAll("link[rel=stylesheet][href^='/dist/']")) + .map(i => i.outerHTML) + .join('\n'); +let includes = `${stylesheets} + + `; - let fieldset = container.querySelector('fieldset'); - let iframe = container.querySelector('iframe'); - let stylesheets = Array.from(document.querySelectorAll("link[rel=stylesheet][href^='/dist/']")) - .map(i => i.outerHTML) +function render() { + let slots = Array.from(fieldset.querySelectorAll('wa-checkbox[name=slot]:is([data-wa-checked])')); + let slotsHTML = slots + .map(slot => { + let name = slot.getAttribute('value'); + let description = slot.getAttribute('data-description'); + + let tag = 'div'; + if (name.endsWith('header')) { + tag = 'header'; + } + if (name.endsWith('footer')) { + tag = 'footer'; + } + + return `<${tag} class="slot-content" slot="${name}"> + ${name || 'main (default)'} +

${description}

+ `; + }) .join('\n'); - let includes = `${stylesheets} - - `; + let page = iframe.contentDocument?.querySelector('wa-page'); - function render() { - let slots = Array.from(fieldset.querySelectorAll('wa-checkbox[name=slot]:is([data-wa-checked])')); - let slotsHTML = slots - .map(slot => { - let name = slot.getAttribute('value'); - let description = slot.getAttribute('data-description'); - - let tag = 'div'; - if (name.endsWith('header')) { - tag = 'header'; - } - if (name.endsWith('footer')) { - tag = 'footer'; - } - - return `<${tag} class="slot-content" slot="${name}"> - ${name || 'main (default)'} -

${description}

- `; - }) - .join('\n'); - let page = iframe.contentDocument?.querySelector('wa-page'); - - if (page) { - page.innerHTML = slotsHTML; - } else { - iframe.srcdoc = `${includes}${slotsHTML}`; - } + if (page) { + page.innerHTML = slotsHTML; + } else { + iframe.srcdoc = `${includes}${slotsHTML}`; } - fieldset?.addEventListener('input', render); - render(); } - -(async () => { - await run(); - document.addEventListener('turbo:load', run); -})(); +fieldset?.addEventListener('input', render); +render(); From f27c982962a47fee7431210c129263ecd5a38f0f Mon Sep 17 00:00:00 2001 From: Konnor Rogers Date: Tue, 10 Dec 2024 22:47:26 -0500 Subject: [PATCH 4/4] keep previews --- docs/_includes/base.njk | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/_includes/base.njk b/docs/_includes/base.njk index f988a0cc3..733b36dfa 100644 --- a/docs/_includes/base.njk +++ b/docs/_includes/base.njk @@ -6,7 +6,6 @@ {% if noindex %}{% endif %} - {{ title }}