Sha256: 3616a48c68cec59f5ff9a231fec203adb14d2e19de52c8d2373aeedb661f7486

Contents?: true

Size: 1.18 KB

Versions: 31

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

class Avo::ItemSwitcherComponent < Avo::BaseComponent
  include Turbo::FramesHelper

  attr_reader :resource
  attr_reader :reflection
  attr_reader :index
  attr_reader :item
  attr_reader :view

  def initialize(resource: nil, reflection: nil, item: nil, index: nil, view: nil, form: nil)
    @resource = resource
    @reflection = reflection
    @form = form
    @index = index
    @item = item
    @view = view
  end

  def form
    @form || nil
  end

  def render?
    # Stops rendering if the field should be hidden in reflections
    if item.is_field?
      return false if in_reflection? && item.hidden_in_reflection?
    end

    return false if item.is_main_panel?

    true
  end

  def in_reflection?
    @reflection.present?
  end

  def tab_group_component
    Avo::TabGroupComponent.new resource: @resource, group: item.hydrate(view: view), index: index, params: params, form: form, view: view
  end

  def field_component
    final_item = item.dup.hydrate(resource: @resource, record: @resource.record, user: resource.user, view: view)
    final_item.component_for_view(@view).new(field: final_item, resource: @resource, index: index, form: form)
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
avo-3.0.1.beta23 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta20 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta21 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta17 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta22 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta18 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta19 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta24 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta15 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta16 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta14 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta12 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta13 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta10 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta11 app/components/avo/item_switcher_component.rb
avo-3.0.0.pre19 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta8 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta9 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta6 app/components/avo/item_switcher_component.rb
avo-3.0.1.beta7 app/components/avo/item_switcher_component.rb