Move intro rendering to display

This commit is contained in:
Adrian Heine 2020-09-20 23:14:52 +02:00
parent 6edd1bcb3e
commit f5d0077521
2 changed files with 13 additions and 19 deletions

View file

@ -19,6 +19,13 @@ export class Display {
} }
return target return target
} }
target.addEventListener('click', e => {
let target = findA(e.target)
if (!target) return
window.history.pushState(null, "", target.href)
dispatch(target.getAttribute('href'))
e.preventDefault()
})
target.addEventListener('dragstart', e => { target.addEventListener('dragstart', e => {
let target = findA(e.target) let target = findA(e.target)
if (!target || !target.draggable) return if (!target || !target.draggable) return
@ -51,6 +58,9 @@ export class Display {
0.5 // Damping 0.5 // Damping
) )
} }
renderIntro(intro) {
this.target.appendChild(modal(intro))
}
render(state) { render(state) {
const target = document.createElement('div') const target = document.createElement('div')
target.className = 'wrapper' target.className = 'wrapper'

View file

@ -1,8 +1,6 @@
import {modal, Display} from './display.js' import {Display} from './display.js'
import intro from './intro.js' import intro from './intro.js'
const target = document.createElement('div')
const state = {items: [], show: null, links: [] } const state = {items: [], show: null, links: [] }
import {items} from './data.js' import {items} from './data.js'
@ -51,23 +49,9 @@ const dispatch = target => {
window.onpopstate = e => { window.onpopstate = e => {
dispatch(document.location.search) dispatch(document.location.search)
} }
const findA = target => { const target = document.createElement('div')
while (target.nodeName !== 'A') {
target = target.parentNode
if (!target) return
}
return target
}
document.body.addEventListener('click', e => {
let target = findA(e.target)
if (!target) return
window.history.pushState(null, "", target.href)
dispatch(target.getAttribute('href'))
e.preventDefault()
})
display = new Display('', dispatch, target) display = new Display('', dispatch, target)
if (document.location.search) dispatch(document.location.search) if (document.location.search) dispatch(document.location.search)
else document.body.appendChild(modal(intro)) else display.renderIntro(intro)
document.body.appendChild(target) document.body.appendChild(target)