Move nested images partial to a component
This commit is contained in:
22
app/components/images/nested_component.html.erb
Normal file
22
app/components/images/nested_component.html.erb
Normal file
@@ -0,0 +1,22 @@
|
||||
<%= f.label image_fields, t("images.form.title") %>
|
||||
<p class="help-text"><%= imageables_note %></p>
|
||||
|
||||
<div id="nested-image">
|
||||
<%= f.fields_for image_fields do |image_builder| %>
|
||||
<%= render Images::FieldsComponent.new(image_builder, imageable: imageable) %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= link_to_add_association t("images.form.add_new_image"), f, image_fields,
|
||||
force_non_association_create: true,
|
||||
partial: "images/image_fields",
|
||||
id: "new_image_link",
|
||||
class: "button upload-image
|
||||
#{"hide" if image_fields == :image && imageable.image.present?}",
|
||||
render_options: {
|
||||
locals: { imageable: imageable }
|
||||
},
|
||||
data: {
|
||||
association_insertion_node: "#nested-image",
|
||||
association_insertion_method: "append"
|
||||
} %>
|
||||
20
app/components/images/nested_component.rb
Normal file
20
app/components/images/nested_component.rb
Normal file
@@ -0,0 +1,20 @@
|
||||
class Images::NestedComponent < ApplicationComponent
|
||||
attr_reader :f, :image_fields
|
||||
delegate :imageable_humanized_accepted_content_types, :imageable_max_file_size, to: :helpers
|
||||
|
||||
def initialize(f, image_fields: :image)
|
||||
@f = f
|
||||
@image_fields = image_fields
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def imageable
|
||||
f.object
|
||||
end
|
||||
|
||||
def imageables_note
|
||||
t "images.form.note", accepted_content_types: imageable_humanized_accepted_content_types,
|
||||
max_file_size: imageable_max_file_size
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user