Sha256: cee0a1ef9e841a08bcec50df1c37e0196528b6623062d1aecd4d9a72978b7672

Contents?: true

Size: 1.32 KB

Versions: 10

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

module Blacklight
  module Document
    # Render a bookmark widget to bookmark / unbookmark a document
    class ActionsComponent < Blacklight::Component
      renders_many :actions, (lambda do |action:, component: nil, **kwargs|
        component ||= action.component || Blacklight::Document::ActionComponent
        component.new(action: action, document: @document, options: @options, url_opts: @url_opts, link_classes: @link_classes, **kwargs)
      end)

      # @param [Blacklight::Document] document
      # rubocop:disable Metrics/ParameterLists
      def initialize(document: nil, actions: [], options: {}, url_opts: nil, tag: :div, classes: 'index-document-functions', wrapping_tag: nil, wrapping_classes: nil, link_classes: 'nav-link')
        @document = document
        @actions = actions
        @tag = tag
        @classes = classes
        @options = options
        @url_opts = url_opts
        @wrapping_tag = wrapping_tag
        @wrapping_classes = wrapping_classes
        @link_classes = link_classes
      end
      # rubocop:enable Metrics/ParameterLists

      def before_render
        return if actions.present?

        @actions.each do |a|
          with_action(component: a.component, action: a)
        end
      end

      def render?
        actions.present?
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
blacklight-7.40.0 app/components/blacklight/document/actions_component.rb
blacklight-7.39.0 app/components/blacklight/document/actions_component.rb
blacklight-7.38.0 app/components/blacklight/document/actions_component.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/blacklight-7.37.0/app/components/blacklight/document/actions_component.rb
blacklight-7.37.0 app/components/blacklight/document/actions_component.rb
blacklight-7.36.2 app/components/blacklight/document/actions_component.rb
blacklight-7.36.1 app/components/blacklight/document/actions_component.rb
blacklight-7.36.0 app/components/blacklight/document/actions_component.rb
blacklight-7.35.0 app/components/blacklight/document/actions_component.rb
blacklight-7.34.0 app/components/blacklight/document/actions_component.rb