fix(form): conditional hides fieldset__element so vertical margins are not cumulated

This commit is contained in:
Colin Darie 2023-10-09 13:02:58 +02:00
parent 7b9f44ec42
commit 9e5ade817a
No known key found for this signature in database
GPG key ID: 8C76CADD40253590
3 changed files with 16 additions and 12 deletions

View file

@ -30,15 +30,20 @@ class EditableChamp::EditableChampComponent < ApplicationComponent
{
'editable-champ': true,
"editable-champ-#{@champ.type_champ}": true,
"hidden": !@champ.visible?,
champ_component.dsfr_group_classname => true
}.merge(champ_component.input_group_error_class_names)
),
id: @champ.input_group_id,
data: { controller: stimulus_controller, **data_dependent_conditions, **stimulus_values }
}
end
def fieldset_element_attributes
{
id: @champ.input_group_id,
"hidden": !@champ.visible?
}
end
def stimulus_values
if @champ.fetch_external_data_pending?
{ turbo_poll_url_value: }

View file

@ -1,9 +1,10 @@
= content_tag((champ_component.dsfr_champ_container), html_options) do
- if has_label?(@champ)
= render EditableChamp::ChampLabelComponent.new form: @form, champ: @champ, seen_at: @seen_at
.fr-fieldset__element{ **fieldset_element_attributes }
= content_tag((champ_component.dsfr_champ_container), html_options) do
- if has_label?(@champ)
= render EditableChamp::ChampLabelComponent.new form: @form, champ: @champ, seen_at: @seen_at
= render champ_component
= render champ_component
= render Dsfr::InputStatusMessageComponent.new(errors_on_attribute: champ_component.errors_on_attribute?, error_full_messages: champ_component.error_full_messages, described_by: @champ.describedby_id)
= render Dsfr::InputStatusMessageComponent.new(errors_on_attribute: champ_component.errors_on_attribute?, error_full_messages: champ_component.error_full_messages, described_by: @champ.describedby_id)
= @form.hidden_field :id, value: @champ.id
= @form.hidden_field :id, value: @champ.id

View file

@ -8,8 +8,7 @@
= render section
- else
= fields_for champ.input_name, champ do |form|
.fr-fieldset__element
= render EditableChamp::EditableChampComponent.new form:, champ:
= render EditableChamp::EditableChampComponent.new form:, champ:
- else
%fieldset.fr-fieldset.fr-my-0
- if header_section
@ -20,5 +19,4 @@
= render section
- else
= fields_for champ.input_name, champ do |form|
.fr-fieldset__element
= render EditableChamp::EditableChampComponent.new form:, champ:
= render EditableChamp::EditableChampComponent.new form:, champ: