Skip to content

Commit 06983d0

Browse files
committed
Allow the view_config to be passed into the DocumentComponent
1 parent d72ec46 commit 06983d0

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

app/components/blacklight/document_component.rb

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@ class DocumentComponent < Blacklight::Component
3434

3535
# The document title with some reasonable default behavior
3636
renders_one :title, (lambda do |*args, component: nil, **kwargs|
37-
component ||= @presenter&.view_config&.title_component || Blacklight::DocumentTitleComponent
37+
component ||= view_config.title_component || Blacklight::DocumentTitleComponent
3838

3939
component.new(*args, counter: @counter, document: @document, presenter: @presenter, as: @title_component, actions: !@show, link_to_document: !@show, document_component: self, **kwargs)
4040
end)
4141

4242
renders_one :embed, (lambda do |static_content = nil, *args, component: nil, **kwargs|
4343
next static_content if static_content.present?
4444

45-
component ||= @presenter.view_config&.embed_component
45+
component ||= view_config.embed_component
4646

4747
next unless component
4848

@@ -53,7 +53,7 @@ class DocumentComponent < Blacklight::Component
5353
renders_one :metadata, (lambda do |static_content = nil, *args, component: nil, fields: nil, **kwargs|
5454
next static_content if static_content.present?
5555

56-
component ||= @presenter&.view_config&.metadata_component || Blacklight::DocumentMetadataComponent
56+
component ||= view_config.metadata_component || Blacklight::DocumentMetadataComponent
5757

5858
component.new(*args, fields: fields || @presenter&.field_presenters || [], **kwargs)
5959
end)
@@ -64,7 +64,7 @@ class DocumentComponent < Blacklight::Component
6464
renders_one :thumbnail, (lambda do |image_options_or_static_content = {}, *args, component: nil, **kwargs|
6565
next image_options_or_static_content if image_options_or_static_content.is_a? String
6666

67-
component ||= @presenter&.view_config&.thumbnail_component || Blacklight::Document::ThumbnailComponent
67+
component ||= view_config.thumbnail_component || Blacklight::Document::ThumbnailComponent
6868

6969
component.new(*args, document: @document, presenter: @presenter, counter: @counter, image_options: image_options_or_static_content, **kwargs)
7070
end)
@@ -91,7 +91,7 @@ class DocumentComponent < Blacklight::Component
9191
def initialize(document: nil, presenter: nil, partials: nil,
9292
id: nil, classes: [], component: :article, title_component: nil,
9393
counter: nil, document_counter: nil, counter_offset: 0,
94-
show: false, **args)
94+
show: false, view_config: nil, **args)
9595
Blacklight.deprecation.warn('the `presenter` argument to DocumentComponent#initialize is deprecated; pass the `presenter` in as document instead') if presenter
9696

9797
@presenter = presenter || document || args[self.class.collection_parameter]
@@ -108,6 +108,7 @@ def initialize(document: nil, presenter: nil, partials: nil,
108108
@counter ||= 1 + @document_counter + counter_offset if @document_counter.present?
109109

110110
@show = show
111+
@view_config = view_config
111112
end
112113
# rubocop:enable Metrics/ParameterLists
113114

@@ -124,7 +125,7 @@ def classes
124125
def before_render
125126
set_slot(:title, nil) unless title
126127
set_slot(:thumbnail, nil) unless thumbnail || show?
127-
set_slot(:metadata, nil, fields: presenter.field_presenters, show: @show) unless metadata
128+
set_slot(:metadata, nil, fields: field_presenters, show: @show) unless metadata
128129
set_slot(:embed, nil) unless embed
129130
if view_partials.present?
130131
view_partials.each do |view_partial|
@@ -137,6 +138,12 @@ def before_render
137138
end
138139
end
139140

141+
def view_config
142+
@view_config ||= presenter&.view_config || Blacklight::Configuration::ViewConfig.new
143+
end
144+
145+
delegate :field_presenters, to: :presenter
146+
140147
private
141148

142149
attr_reader :document_counter, :presenter, :view_partials

0 commit comments

Comments
 (0)