Sha256: d0e0043beeae425e08f4975be2517ed51566cd5f50ed980e8b211ef8ee099ae7

Contents?: true

Size: 1.89 KB

Versions: 3

Compression:

Stored size: 1.89 KB

Contents

# frozen_string_literal: true

module Blacklight
  class SearchBarComponent < ::ViewComponent::Base
    include Blacklight::ContentAreasShim

    renders_one :append
    renders_one :prepend

    # rubocop:disable Metrics/ParameterLists
    def initialize(
      url:, advanced_search_url: nil, params:,
      classes: ['search-query-form'], presenter: nil, prefix: '',
      method: 'GET', q: nil, query_param: :q,
      search_field: nil, search_fields: [], autocomplete_path: nil,
      autofocus: nil, i18n: { scope: 'blacklight.search.form' }
    )
      @url = url
      @advanced_search_url = advanced_search_url
      @q = q || params[:q]
      @query_param = query_param
      @search_field = search_field || params[:search_field]
      @params = params.except(:q, :search_field, :utf8, :page)
      @prefix = prefix
      @classes = classes
      @presenter = presenter
      @method = method
      @autocomplete_path = autocomplete_path
      @autofocus = autofocus
      @search_fields = search_fields
      @i18n = i18n
    end
    # rubocop:enable Metrics/ParameterLists

    def autocomplete_path
      return nil unless presenter.autocomplete_enabled?

      @autocomplete_path
    end

    def autofocus
      if @autofocus.nil?
        presenter.autofocus?
      else
        @autofocus
      end
    end

    private

    def presenter
      @presenter ||= presenter_class.new(controller, blacklight_config)
    end

    def presenter_class
      blacklight_config.view_config(action_name: :index).search_bar_presenter_class
    end

    def blacklight_config
      helpers.blacklight_config
    end

    def render_hash_as_hidden_fields(*args)
      Deprecation.silence(Blacklight::HashAsHiddenFieldsHelperBehavior) do
        helpers.render_hash_as_hidden_fields(*args)
      end
    end

    def scoped_t(key, **args)
      t(key, default: t(key, scope: 'blacklight.search.form'), **@i18n, **args)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
blacklight-7.24.0 app/components/blacklight/search_bar_component.rb
blacklight-7.23.0.1 app/components/blacklight/search_bar_component.rb
blacklight-7.23.0 app/components/blacklight/search_bar_component.rb