Compare commits

...

2 commits

Author SHA1 Message Date
4255b002b9 Remove unused baseUrl parameter 2020-09-20 23:15:21 +02:00
f5d0077521 Move intro rendering to display 2020-09-20 23:14:52 +02:00
2 changed files with 15 additions and 22 deletions

View file

@ -9,8 +9,7 @@ export const modal = content => {
} }
export class Display { export class Display {
constructor(baseUrl, dispatch, target) { constructor(dispatch, target) {
this.baseUrl = baseUrl
this.target = target this.target = target
const findA = target => { const findA = target => {
while (target.nodeName !== 'A') { while (target.nodeName !== 'A') {
@ -19,6 +18,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 +57,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') { display = new Display(dispatch, target)
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)
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)