class Procedure::PublicationWarningComponent < ApplicationComponent def initialize(procedure:) @procedure = procedure end private def render? @procedure.validate(:publication) @procedure.errors.delete(:path) @procedure.errors.any? end def error_messages @procedure.errors .to_hash(full_messages: true) .map do |attribute, messages| [messages, error_correction_page(attribute)] end end def error_correction_page(attribute) case attribute when :draft_revision champs_admin_procedure_path(@procedure) when :attestation_template edit_admin_procedure_attestation_template_path(@procedure) when :initiated_mail, :received_mail, :closed_mail, :refused_mail, :without_continuation_mail admin_procedure_mail_templates_path(@procedure) end end end