module Avo::Fields::Concerns::ItemLabels

def label_from_item(item)

def label_from_item(item)
  value = value_for_item item
  if suggestions_are_a_hash?
    return suggestions_by_id[value.to_s][:label] if suggestions_by_id[value.to_s].present?
  end
  value
end

def suggestions_are_a_hash?

def suggestions_are_a_hash?
  return false if @field.suggestions.blank?
  @field.suggestions.first.is_a? Hash
end

def suggestions_by_id

def suggestions_by_id
  return {} unless suggestions_are_a_hash?
  @field.suggestions.map do |suggestion|
    [suggestion[:value].to_s, suggestion]
  end.to_h
end

def value_for_item(item)

def value_for_item(item)
  if @field.acts_as_taggable_on.present?
    item["value"]
  else
    item
  end
end