demarches-normaliennes/app/controllers/concerns/turbo_champs_concern.rb

25 lines
578 B
Ruby
Raw Normal View History

# frozen_string_literal: true
2023-03-01 18:30:10 +01:00
module TurboChampsConcern
extend ActiveSupport::Concern
private
def champs_to_turbo_update(params, champs)
to_update = champs.filter { _1.public_id.in?(params.keys) }
.filter { _1.refresh_after_update? || _1.forked_with_changes? }
2023-03-01 18:30:10 +01:00
to_show, to_hide = champs.filter(&:conditional?)
.partition(&:visible?)
.map { champs_to_one_selector(_1 - to_update) }
return to_show, to_hide, to_update
end
def champs_to_one_selector(champs)
champs
.map { "##{_1.input_group_id}" }
2023-03-01 18:30:10 +01:00
.join(',')
end
end