diff --git a/_packs/entry.js b/_packs/entry.js index 44fd39e..9ba5f80 100644 --- a/_packs/entry.js +++ b/_packs/entry.js @@ -9,8 +9,14 @@ window.airbrake = new Notifier({ import 'core-js/stable' import 'regenerator-runtime/runtime' -const Turbolinks = require("turbolinks") -Turbolinks.start() +// Turbo acelera la navegación al no tener que recargar todo el JS y CSS +// de la página, con lo que se siente más rápida y "nativa". +// +// Cambiamos de turbolinks a turbo porque turbo soporta la función +// fetch(), que luego es interceptada por el SW para obtener las +// direcciones localmente. +import * as Turbo from "@hotwired/turbo" +Turbo.start() import { Application } from 'stimulus' import { definitionsFromContext } from "stimulus/webpack-helpers" @@ -19,23 +25,6 @@ const application = Application.start() const context = require.context("./controllers", true, /\.js$/) application.load(definitionsFromContext(context)) -// Prevenir que Turbolinks interfiera con la navegación por anchors -// https://github.com/turbolinks/turbolinks/issues/75#issuecomment-445325162 -document.addEventListener('turbolinks:click', event => { - const anchorElement = event.target - const isSamePageAnchor = ( - anchorElement.hash && - anchorElement.origin === window.location.origin && - anchorElement.pathname === window.location.pathname - ) - - if (!isSamePageAnchor) return - - Turbolinks.controller.pushHistoryWithLocationAndRestorationIdentifier(event.data.url, Turbolinks.uuid()) - - event.preventDefault() -}) - try { window.axe = require('axe-core/axe') } catch(e) {} @@ -45,8 +34,6 @@ if (window.axe) window.axe.configure({ locale: require('axe-core/locales/es.json // Prevenir que Turbolinks interfiera la navegación a un anchor al // recargar la página document.addEventListener('turbolinks:load', event => { - window.location.hash = window.location.hash - if (!window.axe) return window.axe.run().then(results => { diff --git a/package.json b/package.json index ae1140a..eb32fd3 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@babel/core": "^7.10.4", "@babel/plugin-proposal-class-properties": "^7.10.4", "@babel/preset-env": "^7.10.4", + "@hotwired/turbo": "^7.0.0-rc.4", "axe-core": "^4.1.2", "babel-loader": "^8.1.0", "core-js": "^3.6.5", diff --git a/yarn.lock b/yarn.lock index ca44c87..91a20bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -880,6 +880,11 @@ "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" +"@hotwired/turbo@^7.0.0-rc.4": + version "7.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.0.0-rc.4.tgz#d3ab9555544534f5ec649613553e72ff6c7d7122" + integrity sha512-4qx+6O6mUN+cSN+ZLGCOGc+2MxNrs7cFbmnWD6LIfiHAQyuNiIuB87Y5IAtOo8xj16fOBd2CdU1WRJya4Wkw0A== + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"