diff --git a/src/display.js b/src/display.js index 5ea43c6..0c438b3 100644 --- a/src/display.js +++ b/src/display.js @@ -9,7 +9,8 @@ export const modal = content => { } export class Display { - constructor(dispatch, target) { + constructor(baseUrl, dispatch, target) { + this.baseUrl = baseUrl this.target = target const findA = target => { while (target.nodeName !== 'A') { @@ -18,13 +19,6 @@ export class Display { } 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 => { let target = findA(e.target) if (!target || !target.draggable) return @@ -57,9 +51,6 @@ export class Display { 0.5 // Damping ) } - renderIntro(intro) { - this.target.appendChild(modal(intro)) - } render(state) { const target = document.createElement('div') target.className = 'wrapper' diff --git a/src/index.js b/src/index.js index ef6aa1b..41da339 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,8 @@ -import {Display} from './display.js' +import {modal, Display} from './display.js' import intro from './intro.js' +const target = document.createElement('div') + const state = {items: [], show: null, links: [] } import {items} from './data.js' @@ -49,9 +51,23 @@ const dispatch = target => { window.onpopstate = e => { dispatch(document.location.search) } -const target = document.createElement('div') -display = new Display(dispatch, target) +const findA = target => { + 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) if (document.location.search) dispatch(document.location.search) -else display.renderIntro(intro) +else document.body.appendChild(modal(intro)) document.body.appendChild(target) +