From 0e803b1f813337704c516bd0e5b8df5569d1fbdb Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Thu, 30 Jun 2022 10:24:42 +0200 Subject: [PATCH] fix(vite): temporary use legacy build in all browsers --- app/helpers/application_helper.rb | 17 +++++++++++++++++ app/views/layouts/application.html.haml | 14 ++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 518ed3147..cdc164737 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -189,4 +189,21 @@ module ApplicationHelper Rails.env.production? || ENV['VITE_LEGACY'] == 'enabled' end end + + def ds_vite_legacy_javascript_tag(name, asset_type: :javascript) + legacy_name = name.sub(/(\..+)|$/, '-legacy\1') + import_tag = tag(:script) do + # rubocop:disable Rails/OutputSafety + "System.import('#{vite_asset_path(legacy_name, type: asset_type)}')".html_safe + # rubocop:enable Rails/OutputSafety + end + + safe_join [ds_vite_legacy_polyfill_tag, import_tag] + end + + # Internal: Renders the vite-legacy-polyfill to enable code splitting in + # browsers that do not support modules. + def ds_vite_legacy_polyfill_tag + tag(:script, nil, src: vite_asset_path('legacy-polyfills', type: :virtual)) + end end diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index e7507be09..3f2ba2a9b 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -15,9 +15,14 @@ = vite_client_tag = vite_react_refresh_tag - = vite_javascript_tag 'application' - - if administrateur_signed_in? - = vite_javascript_tag 'track-admin' + - if vite_legacy? + = ds_vite_legacy_javascript_tag 'application' + - if administrateur_signed_in? + = ds_vite_legacy_javascript_tag 'track-admin' + - else + = vite_javascript_tag 'application' + - if administrateur_signed_in? + = vite_javascript_tag 'track-admin' = preload_link_tag(asset_url("Muli-Regular.woff2")) = preload_link_tag(asset_url("Muli-Bold.woff2")) @@ -43,9 +48,6 @@ - if content_for?(:footer) = content_for(:footer) - - if vite_legacy? - = vite_legacy_javascript_tag 'application' - = yield :charts_js // Container for custom turbo-stream actions