module TasksHelper
  def render_entity_links(entity)
    return unless entity

    links = []

    if entity.is_a?(Respondent)
      if entity.project.present? && entity.respondent_category.present?
        links << [t(:conversation),
                  link_to(truncate(entity.name, length: 30), [entity.project, entity.respondent_category, entity], target: "_blank", rel: "noopener")]
        links << [t(:sub_project), link_to(entity.respondent_category&.name, [entity.project, entity.respondent_category])]
      end
      links << [t(:project), link_to(entity.project&.title, entity.project)] if entity.project.present?
    elsif entity.is_a?(RespondentCategory)
      if entity.project.present?
        links << [t(:sub_project),
                  link_to(truncate(entity.name, length: 30), [entity.project, entity], target: "_blank", rel: "noopener")]
      end
      links << [t(:project), link_to(entity.project&.title, entity.project)] if entity.project.present?
    end

    safe_join(links.map { |label, link| "#{label}: #{link}".html_safe }, tag.br)
  end
end
