diff --git a/Gemfile b/Gemfile index b4752c745..a2bed131f 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,8 @@ gem 'rack-cors', '2.0.0', require: 'rack/cors' gem 'rails', '~> 7.1' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', require: false +# Turbo for SPA-like page acceleration +gem 'turbo-rails' ##-- rails application helper gems --## gem 'acts-as-taggable-on' diff --git a/Gemfile.lock b/Gemfile.lock index d9908f5e1..a46b42a9d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -815,6 +815,9 @@ GEM i18n timeout (0.4.3) trailblazer-option (0.1.2) + turbo-rails (2.0.13) + actionpack (>= 7.1.0) + railties (>= 7.1.0) twilio-ruby (5.77.0) faraday (>= 0.9, < 3.0) jwt (>= 1.5, < 3.0) @@ -1004,6 +1007,7 @@ DEPENDENCIES telephone_number test-prof time_diff + turbo-rails twilio-ruby (~> 5.66) twitty (~> 0.1.5) tzinfo-data diff --git a/app/javascript/entrypoints/portal.js b/app/javascript/entrypoints/portal.js index 42493615d..a1b58e390 100644 --- a/app/javascript/entrypoints/portal.js +++ b/app/javascript/entrypoints/portal.js @@ -1,9 +1,9 @@ import Rails from '@rails/ujs'; -import Turbolinks from 'turbolinks'; +import { Turbo } from '@hotwired/turbo-rails'; import '../portal/application.scss'; import { InitializationHelpers } from '../portal/portalHelpers'; Rails.start(); -Turbolinks.start(); +Turbo.start(); -document.addEventListener('turbolinks:load', InitializationHelpers.onLoad); +document.addEventListener('turbo:load', InitializationHelpers.onLoad); diff --git a/app/javascript/portal/components/TableOfContents.vue b/app/javascript/portal/components/TableOfContents.vue index ec7ccd895..99e40fc86 100644 --- a/app/javascript/portal/components/TableOfContents.vue +++ b/app/javascript/portal/components/TableOfContents.vue @@ -110,7 +110,7 @@ export default {
diff --git a/app/javascript/portal/portalHelpers.js b/app/javascript/portal/portalHelpers.js index 5cced0fa4..3b41f7fc5 100644 --- a/app/javascript/portal/portalHelpers.js +++ b/app/javascript/portal/portalHelpers.js @@ -15,7 +15,7 @@ export const getHeadingsfromTheArticle = () => { const slug = slugifyWithCounter(element.innerText); element.id = slug; element.className = 'scroll-mt-24 heading'; - element.innerHTML += `#`; + element.innerHTML += `#`; rows.push({ slug, title: element.innerText, @@ -144,7 +144,7 @@ export const InitializationHelpers = { const a = document.createElement('a'); a.href = window.location.hash; - a['data-turbolinks'] = false; + a['data-turbo'] = false; a.click(); } }, diff --git a/app/views/layouts/portal.html.erb b/app/views/layouts/portal.html.erb index c4135fd37..cf144132d 100644 --- a/app/views/layouts/portal.html.erb +++ b/app/views/layouts/portal.html.erb @@ -18,7 +18,7 @@ By default, it renders:
- + <%= vite_client_tag %> @@ -39,7 +39,7 @@ By default, it renders: <% else %>