module InterruptionScreenHelper
  def display_informative_text(informative_text, case_log)
    return "" unless informative_text["arguments"]

    translation_params = {}
    informative_text["arguments"].each do |argument|
      value = if argument["label"]
                case_log.form.get_question(argument["key"], case_log).answer_label(case_log).downcase
              else
                case_log.public_send(argument["key"])
              end
      translation_params[argument["i18n_template"].to_sym] = value
    end

    begin
      translation = I18n.t(informative_text["translation"], **translation_params)
      translation.to_s.html_safe
    rescue I18n::MissingInterpolationArgument => e
      Rails.logger.error(e.message)
      ""
    end
  end

  def display_title_text(title_text, case_log)
    if title_text["arguments"]
      translation_params = {}
      title_text["arguments"].each do |argument|
        value = if argument["label"]
                  case_log.form.get_question(argument["key"], case_log).answer_label(case_log).downcase
                else
                  case_log.public_send(argument["key"])
                end
        translation_params[argument["i18n_template"].to_sym] = value
      end
      translation = I18n.t(title_text["translation"], **translation_params)
    else
      translation = I18n.t(title_text)
    end
    translation.to_s
  end
end