From 754b7bc6cd3927950556a65f208d69341db949f3 Mon Sep 17 00:00:00 2001 From: bat Date: Thu, 16 Mar 2023 17:02:08 +0000 Subject: [PATCH] Actualizar 'components/layout.js' --- components/layout.js | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/components/layout.js b/components/layout.js index 77e5903..0805003 100644 --- a/components/layout.js +++ b/components/layout.js @@ -2,19 +2,46 @@ export class Layout extends HTMLElement { constructor() { super() this.attachShadow({mode: 'open'}) + this.header = document.createElement('m-header') + this.shadowRoot.appendChild(this.header) this.load() addEventListener('hashchange', () => { this.load() }) } + connectedCallback() { + const style = document.createElement('style') + style.textContent = ` + :host { + width: 100%; + height: 100dvh; + display: flex; + flex-direction: column; + } + .m-page { + flex-grow: 1; + } + ` + document.appendChild(style) + } + load() { - const el = document.createElement('m-page') - const path = new URL( + const path = this.path + const prevPage = this.page + this.page = document.createElement('m-page') + this.page.path = path + if (prevPage !== undefined) { + prevPage.remove() + } + this.shadowRoot.appendChild(this.page) + this.header.path = path + } + + get path() { + return new URL( window.location.hash.slice(1) || '/', window.location ).pathname - el.setAttribute('path', path) - this.shadowRoot.replaceChildren(el) } } \ No newline at end of file