demarches-normaliennes/app/components/dsfr/alert_component.rb

37 lines
941 B
Ruby

# see: https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/alerte
class Dsfr::AlertComponent < ApplicationComponent
renders_one :body
def prefix_for_state
case state
when :error then "Erreur : "
when :info then "Information : "
when :warning then "Attention : "
when :success then ""
else ""
end
end
def alert_class(state)
if size == 'small'
["fr-alert fr-alert--sm fr-alert--#{state}", extra_class_names].compact.flatten
else
["fr-alert fr-alert--#{state}", extra_class_names].compact.flatten
end
end
private
def initialize(state:, title: '', size: '', extra_class_names: nil, heading_level: 'h3')
@state = state
@title = title
@size = size
@block = block
@extra_class_names = extra_class_names
@heading_level = heading_level
end
attr_reader :state, :title, :size, :block, :extra_class_names, :heading_level
private
end