Class: Blacklight::FacetComponent
- Inherits:
-
ViewComponent::Base
- Object
- ViewComponent::Base
- Blacklight::FacetComponent
- Defined in:
- app/components/blacklight/facet_component.rb
Overview
Renders a single section for facet limit with a specified solr field used for faceting. This renders no UI of it's own, but renders the component that is configured for the facet.
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(display_facet_or_field_config: nil, display_facet: nil, field_config: nil, response: nil, blacklight_config: nil, **component_args) ⇒ FacetComponent
constructor
A new instance of FacetComponent.
- #render? ⇒ Boolean
Constructor Details
#initialize(display_facet_or_field_config: nil, display_facet: nil, field_config: nil, response: nil, blacklight_config: nil, **component_args) ⇒ FacetComponent
Returns a new instance of FacetComponent.
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/components/blacklight/facet_component.rb', line 14 def initialize(display_facet_or_field_config: nil, display_facet: nil, field_config: nil, response: nil, blacklight_config: nil, **component_args) if display_facet_or_field_config.is_a?(Blacklight::Configuration::Field) || field_config @field_config = display_facet_or_field_config || field_config @display_facet = display_facet || (response && response.aggregations[@field_config.field]) elsif (display_facet || display_facet_or_field_config).respond_to?(:name) @display_facet = display_facet || display_facet_or_field_config @field_config = field_config || blacklight_config&.facet_configuration_for_field(@display_facet.name) else raise ArgumentError, 'You must provide one of display_facet or field_config' unless @field_config end @component_args = component_args end |
Instance Method Details
#call ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'app/components/blacklight/facet_component.rb', line 32 def call component = @field_config.component == true ? Blacklight::FacetFieldListComponent : @field_config.component render( component.new( facet_field: helpers.facet_field_presenter(@field_config, @display_facet), **@component_args ) ) end |
#render? ⇒ Boolean
28 29 30 |
# File 'app/components/blacklight/facet_component.rb', line 28 def render? helpers.should_render_field?(@field_config, @display_facet) end |