class Avo::Views::ResourceShowComponent

def back_path

def back_path
  if via_resource?
    helpers.resource_path(resource: association_resource, resource_id: params[:via_record_id])
  else
    helpers.resources_path(resource: @resource, **keep_referrer_params)
  end
end

def controls

def controls
  @resource.render_show_controls
end

def edit_path

def edit_path
  args = if via_resource?
    {
      via_resource_class: params[:via_resource_class],
      via_record_id: params[:via_record_id]
    }
  elsif @parent_resource.present?
    {
      via_resource_class: @parent_resource.class,
      via_record_id: @parent_record.to_param
    }
  else
    {}
  end
  helpers.edit_resource_path(record: @resource.record, resource: @resource, **args)
end

def has_one_field?

def has_one_field?
  field.present? and field.instance_of? Avo::Fields::HasOneField
end

def initialize(resource: nil, reflection: nil, parent_resource: nil, parent_record: nil, resource_panel: nil, actions: [])

def initialize(resource: nil, reflection: nil, parent_resource: nil, parent_record: nil, resource_panel: nil, actions: [])
  @resource = resource
  @reflection = reflection
  @resource_panel = resource_panel
  @actions = actions
  @parent_record = parent_record
  @parent_resource = parent_resource
  @view = Avo::ViewInquirer.new("show")
  @display_breadcrumbs = reflection.blank?
end

def should_display_invalid_fields_errors?

In development and test environments we should show the invalid field errors
def should_display_invalid_fields_errors?
  (Rails.env.development? || Rails.env.test?) && @resource.invalid_fields.present?
end

def title

def title
  if @reflection.present?
    return field.name if has_one_field?
    reflection_resource.name
  else
    @resource.default_panel_name
  end
end

def view_for(field)

def view_for(field)
  @view
end