demarches-normaliennes/app/components/dsfr/toggle_component.rb
2024-12-20 11:43:06 +01:00

42 lines
1,005 B
Ruby

# frozen_string_literal: true
class Dsfr::ToggleComponent < ApplicationComponent
attr_reader :target
attr_reader :title
attr_reader :html_title
attr_reader :hint
attr_reader :toggle_labels
attr_reader :disabled
attr_reader :data
attr_reader :extra_class_names
def initialize(form:, target:, title: nil, html_title: nil, disabled: nil, hint: nil, toggle_labels: { checked: 'Activé', unchecked: 'Désactivé' }, opt: nil, extra_class_names: nil)
@form = form
@target = target
@title = title
@html_title = html_title
@hint = hint
@disabled = disabled
@toggle_labels = toggle_labels
@data = opt
@extra_class_names = extra_class_names
end
private
def label_for
return input_id if @form.object.present?
return "#{@form.options[:namespace]}_#{target}" if @form.options[:namespace].present?
target.to_s
end
def input_id
if @form.object.present?
dom_id(@form.object, target)
else
target.to_s
end
end
end