diff --git a/Gemfile b/Gemfile index 4ccff860..c422a910 100644 --- a/Gemfile +++ b/Gemfile @@ -20,6 +20,7 @@ gem 'sass-rails', '~> 6.0' gem 'terser', '~> 1.1', '>= 1.1.17' gem 'react-rails', '~> 2.7', '>= 2.7.1' gem 'jsbundling-rails', '~> 1.1' +gem 'turbo-rails', '~> 2.0' # For authentication. gem 'devise', '~> 4.9', '>= 4.9.2' diff --git a/Gemfile.lock b/Gemfile.lock index 14075c2f..4e5d4d7a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -341,6 +341,10 @@ GEM timeout (0.4.1) timers (4.3.5) traces (0.11.1) + turbo-rails (2.0.5) + actionpack (>= 6.0.0) + activejob (>= 6.0.0) + railties (>= 6.0.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) warden (1.2.9) @@ -396,6 +400,7 @@ DEPENDENCIES stackprof (~> 0.2.25) terser (~> 1.1, >= 1.1.17) thread-local (~> 1.1) + turbo-rails (~> 2.0) web-console (~> 4.2) will_paginate (~> 4.0) diff --git a/app/assets/javascripts/application.js b/app/javascript/application.js similarity index 79% rename from app/assets/javascripts/application.js rename to app/javascript/application.js index 07c1bbbc..120fc031 100644 --- a/app/assets/javascripts/application.js +++ b/app/javascript/application.js @@ -1,3 +1,5 @@ +import "@hotwired/turbo-rails"; + document.getElementById("locale").addEventListener("change", function () { document.getElementById("locale-form").submit(); }); diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index d21b9921..13d27459 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -21,6 +21,7 @@ = signed_in_meta_tag - if user_signed_in? = current_user_id_meta_tag + = yield :head %body{:class => body_class} #container = yield :before_title @@ -50,7 +51,8 @@ = button_to t('.userbar.logout'), destroy_auth_user_session_path, method: :delete, params: {return_to: request.fullpath} - else - = link_to auth_user_sign_in_path_with_return_to, :id => 'userbar-log-in' do + = link_to auth_user_sign_in_path_with_return_to, + id: 'userbar-log-in', "data-turbo-prefetch": false do %span= t('.userbar.login') #footer diff --git a/app/views/outfits/edit.html.haml b/app/views/outfits/edit.html.haml index 0c6d21f0..e2ba9a8e 100644 --- a/app/views/outfits/edit.html.haml +++ b/app/views/outfits/edit.html.haml @@ -1,3 +1,5 @@ +- turbo_page_requires_reload + - if @outfit - title(@outfit.name || t('.default_outfit_name')) - open_graph type: 'openneo-impress:outfit', title: yield(:title), @@ -22,5 +24,6 @@ = csrf_meta_tags = impress_2020_meta_tags %meta{name: 'dti-current-user-id', content: user_signed_in? ? current_user.id : "null"} + = yield :head %body #wardrobe-2020-root diff --git a/package.json b/package.json index 5b4d9060..c1561542 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "@chakra-ui/react": "^1.6.0", "@emotion/react": "^11.1.4", "@emotion/styled": "^11.0.0", + "@hotwired/turbo-rails": "^8.0.4", "@loadable/component": "^5.12.0", "@sentry/react": "^5.30.0", "@sentry/tracing": "^5.30.0", diff --git a/vendor/cache/turbo-rails-2.0.5.gem b/vendor/cache/turbo-rails-2.0.5.gem new file mode 100644 index 00000000..a7902548 Binary files /dev/null and b/vendor/cache/turbo-rails-2.0.5.gem differ diff --git a/yarn.lock b/yarn.lock index 4da8eab8..2fee8d86 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1339,6 +1339,23 @@ __metadata: languageName: node linkType: hard +"@hotwired/turbo-rails@npm:^8.0.4": + version: 8.0.4 + resolution: "@hotwired/turbo-rails@npm:8.0.4" + dependencies: + "@hotwired/turbo": "npm:^8.0.4" + "@rails/actioncable": "npm:^7.0" + checksum: c35fdcc79876f3ceaed7100f2e6965bcf9aa647309dce7a6ed685e880ffc1ac475299e00538ecc926addfa4023704c9bd1ea37e70fbef3a77697f7f01d4e344f + languageName: node + linkType: hard + +"@hotwired/turbo@npm:^8.0.4": + version: 8.0.4 + resolution: "@hotwired/turbo@npm:8.0.4" + checksum: 3e7174d550adf3b9a0a4c45ff5d1b71d47c20de6ae01f646fbbaf8ed447677bd1a5fb6dbd46e95b14645a663fe58a6187c1c6d2a688b0981b5cf437379c5e00a + languageName: node + linkType: hard + "@humanwhocodes/config-array@npm:^0.11.13": version: 0.11.13 resolution: "@humanwhocodes/config-array@npm:0.11.13" @@ -1411,6 +1428,13 @@ __metadata: languageName: node linkType: hard +"@rails/actioncable@npm:^7.0": + version: 7.1.3 + resolution: "@rails/actioncable@npm:7.1.3" + checksum: 6019097498387a9c0684df0be380182820a0480173e05a5c5a830cef6cf3e40c9ec75b834af0396b0f57b4e658891c820163e84b9f2bd1ac293c90f5a12ce488 + languageName: node + linkType: hard + "@reach/alert@npm:0.13.2": version: 0.13.2 resolution: "@reach/alert@npm:0.13.2" @@ -3177,6 +3201,7 @@ __metadata: "@chakra-ui/react": "npm:^1.6.0" "@emotion/react": "npm:^11.1.4" "@emotion/styled": "npm:^11.0.0" + "@hotwired/turbo-rails": "npm:^8.0.4" "@loadable/component": "npm:^5.12.0" "@sentry/react": "npm:^5.30.0" "@sentry/tracing": "npm:^5.30.0"