class Manager::DossierChampRowComponent < ApplicationComponent
  with_collection_parameter :row

  attr_reader :row

  def initialize(row:)
    @row = row
  end

  def icon
    return unless row.visible?

    if row.mandatory_blank?
      "🔴"
    else
      "🟢"
    end
  end

  def status
    if !row.visible? && row.conditional?
      "masqué, conditionnel"
    elsif row.blank? && !row.piece_justificative_file.attached?
      "vide"
    else
      "rempli"
    end
  end

  def cell_class(cell: nil)
    class_names(
      'cell-data': true,
      'cell-disabled': !row.visible?,
      'pl-8': cell == :label && row.child?
    )
  end

  def nested_rows
    if row.respond_to?(:rows)
      row.rows
    else
      []
    end
  end
end