Actualizar 'components/layout.js'

file-group-page
bat 3 years ago
parent 9db892198e
commit 754b7bc6cd

@ -2,19 +2,46 @@ export class Layout extends HTMLElement {
constructor() { constructor() {
super() super()
this.attachShadow({mode: 'open'}) this.attachShadow({mode: 'open'})
this.header = document.createElement('m-header')
this.shadowRoot.appendChild(this.header)
this.load() this.load()
addEventListener('hashchange', () => { addEventListener('hashchange', () => {
this.load() 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() { load() {
const el = document.createElement('m-page') const path = this.path
const path = new URL( 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.hash.slice(1) || '/',
window.location window.location
).pathname ).pathname
el.setAttribute('path', path)
this.shadowRoot.replaceChildren(el)
} }
} }
Loading…
Cancel
Save