diff --git a/connect.js b/connect.js index 599c79b..532d245 100644 --- a/connect.js +++ b/connect.js @@ -8,7 +8,7 @@ const create_app = require('./utils/create_app.js'); const create_webpack_compiler = require('./utils/create_webpack_compiler.js'); const esmRequire = esm(module, { - esm: 'all' + esm: 'js' }); module.exports = function connect(opts) { diff --git a/templates/main.js b/templates/main.js index 880df1a..7e3bf74 100644 --- a/templates/main.js +++ b/templates/main.js @@ -3,7 +3,14 @@ window.addEventListener('click', event => { while (a && a.nodeName !== 'A') a = a.parentNode; if (!a) return; - if (navigate(new URL(a.href))) event.preventDefault(); + if (navigate(new URL(a.href))) { + event.preventDefault(); + history.pushState({}, '', a.href); + } +}); + +window.addEventListener('popstate', event => { + navigate(window.location); }); const target = document.querySelector('main'); diff --git a/utils/create_app.js b/utils/create_app.js index c80d400..921c998 100644 --- a/utils/create_app.js +++ b/utils/create_app.js @@ -30,7 +30,7 @@ module.exports = function create_app(routes, dest, matchers, dev) { } `.replace(/^\t{3}/gm, '').trim(); }) - .join(' else '); + .join(' else ') + ' else return false;'; const main = template.replace('// ROUTES', code);