!!! 5
%html{ lang: html_lang, class: yield(:root_class) }
%head
%meta{ "http-equiv": "Content-Type", content: "text/html; charset=UTF-8" }
%meta{ "http-equiv": "X-UA-Compatible", content: "IE=edge" }
%meta{ name: "viewport", content: "width=device-width, initial-scale=1" }
= csrf_meta_tags
%title
= content_for?(:title) ? "#{yield(:title)} ยท #{APPLICATION_NAME}" : APPLICATION_NAME
= favicon_link_tag(image_url("#{FAVICON_16PX_SRC}"), type: "image/png", sizes: "16x16")
= favicon_link_tag(image_url("#{FAVICON_32PX_SRC}"), type: "image/png", sizes: "32x32")
= favicon_link_tag(image_url("#{FAVICON_96PX_SRC}"), type: "image/png", sizes: "96x96")
= vite_client_tag
= vite_react_refresh_tag
= 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"))
= stylesheet_link_tag 'application', media: 'all'
= Gon::Base.render_data(camel_case: true, init: true, nonce: request.content_security_policy_nonce)
%body{ id: content_for(:page_id), class: browser.platform.ios? ? 'ios' : nil }
.page-wrapper
= render partial: "layouts/outdated_browser_banner"
= render partial: 'layouts/pre_maintenance'
- if staging?
#beta
Env Test
= render partial: "layouts/header"
%main
= render partial: "layouts/flash_messages"
= content_for?(:content) ? yield(:content) : yield
- if content_for?(:footer)
= content_for(:footer)
- if vite_legacy?
= vite_legacy_javascript_tag 'application'
= yield :charts_js
// Container for custom turbo-stream actions
%turbo-events
// We patch `@hotwired/turbo` to attach forms generated from links to this
// container instead of the body to avoid conflicts with `@rails/ujs`. We also
// patch `@hotwired/turbo` to add a timeout before removing the form because in
// order to be accepted as a valid `turbo form`` either global `turbo drive`` should
// be enabled or the form needs to have a parent with `data-turbo="true"` on it.
%div{ 'data-turbo': 'true' }