Sha256: d14c4b56a410fb85b2439b6f77e8514903e5a147527feceace853b97780757e8

Contents?: true

Size: 917 Bytes

Versions: 11

Compression:

Stored size: 917 Bytes

Contents

# frozen_string_literal: true

module Blacklight
  module Icons
    class LegacyIconComponent < ::ViewComponent::Base
      def initialize(name:, classes: '', aria_hidden: false, label: true, role: 'img', additional_options: {})
        @name = name
        @classes = classes
        @aria_hidden = aria_hidden
        @icon = Blacklight::Icon.new(name, classes: classes, label: label, role: role, additional_options: additional_options)
      end

      def call
        tag.span(svg&.html_safe || default_icon,  # rubocop:disable Rails/OutputSafety
                 class: "blacklight-icons blacklight-icon-#{@name} #{@classes}".strip,
                 'aria-hidden': (true if @aria_hidden))
      end

      def svg
        Rails.cache.fetch([:blacklight_icon_svg, @name]) do
          @icon.svg if @icon.present?
        end
      end

      def default_icon
        @icon.icon_label
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
blacklight-8.1.0 app/components/blacklight/icons/legacy_icon_component.rb
blacklight-8.0.1 app/components/blacklight/icons/legacy_icon_component.rb
blacklight-8.0.0 app/components/blacklight/icons/legacy_icon_component.rb
blacklight-8.0.0.beta8 app/components/blacklight/icons/legacy_icon_component.rb
blacklight-8.0.0.beta7 app/components/blacklight/icons/legacy_icon_component.rb
blacklight-8.0.0.beta6 app/components/blacklight/icons/legacy_icon_component.rb
blacklight-8.0.0.beta5 app/components/blacklight/icons/legacy_icon_component.rb
blacklight-8.0.0.beta4 app/components/blacklight/icons/legacy_icon_component.rb
blacklight-8.0.0.beta3 app/components/blacklight/icons/legacy_icon_component.rb
blacklight-8.0.0.beta2 app/components/blacklight/icons/legacy_icon_component.rb
blacklight-8.0.0.beta1 app/components/blacklight/icons/legacy_icon_component.rb