@@ -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