Sha256: 359c02736441df0bd815f81c30996c1742a517fb756fbaa46634ddb4228e2b4c

Contents?: true

Size: 1.02 KB

Versions: 44

Compression:

Stored size: 1.02 KB

Contents

# This concern helps us figure out what items are visible for each tab, panel or sidebar
module Avo
  module Concerns
    module VisibleItems
      extend ActiveSupport::Concern
      def items
        if items_holder.present?
          items_holder.items
        else
          []
        end
      end

      def visible_items
        items
          .map do |item|
            if item.respond_to? :hydrate
              item.hydrate(view: view)
            end

            item
          end
          .map do |item|
            visible(item) ? item : nil
          end
          .compact
      end

      def visible(item)
        if item.is_field?
          item.visible? && item.visible_on?(view)
        else
          item.visible?
        end
      end

      def visible?
        any_item_visible = visible_items.any?
        return any_item_visible unless respond_to?(:visible_on?)

        visible_on?(view) && any_item_visible
      end

      def hydrate(view: nil)
        @view = view

        self
      end
    end
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
avo-2.36.1 lib/avo/concerns/visible_items.rb
avo-2.36.0 lib/avo/concerns/visible_items.rb
avo-2.35.0 lib/avo/concerns/visible_items.rb
avo-2.34.7.pre.1 lib/avo/concerns/visible_items.rb
avo-2.34.6 lib/avo/concerns/visible_items.rb
avo-2.34.5 lib/avo/concerns/visible_items.rb
avo-2.34.4 lib/avo/concerns/visible_items.rb
avo-2.34.4.pre.1 lib/avo/concerns/visible_items.rb
avo-2.34.3 lib/avo/concerns/visible_items.rb
avo-2.34.2 lib/avo/concerns/visible_items.rb
avo-2.34.1 lib/avo/concerns/visible_items.rb
avo-2.34.0 lib/avo/concerns/visible_items.rb
avo-2.33.3 lib/avo/concerns/visible_items.rb
avo-2.33.3.pre.2 lib/avo/concerns/visible_items.rb
avo-2.33.3.pre.1 lib/avo/concerns/visible_items.rb
avo-2.33.2 lib/avo/concerns/visible_items.rb
avo-2.33.1 lib/avo/concerns/visible_items.rb
avo-2.33.0 lib/avo/concerns/visible_items.rb
avo-2.32.6 lib/avo/concerns/visible_items.rb
avo-2.32.5 lib/avo/concerns/visible_items.rb