app/components/coco/base/modal/modal.rb in coveragebook_components-0.7.4 vs app/components/coco/base/modal/modal.rb in coveragebook_components-0.7.5
- old
+ new
@@ -6,18 +6,24 @@
accepts_option :dismissable, from: [true, false], default: true
accepts_option :close_on_submit, from: [true, false], default: true
renders_one :title
- renders_one :dialog, ->(**kwargs, &block) do
- @dialog_content = capture { block.call }
- Coco::ModalDialog.new(dismissable: get_option_value(:dismissable), **kwargs)
- end
+ renders_one :container, types: {
+ dialog: ->(**kwargs, &block) do
+ @container_content = block
+ Coco::ModalDialog.new(dismissable: get_option_value(:dismissable), **kwargs)
+ end,
+ lightbox: ->(**kwargs, &block) do
+ Coco::ModalLightbox.new(dismissable: get_option_value(:dismissable), **kwargs)
+ end
+ }
+
before_render do
- if dialog? && title?
- dialog.with_title { title.to_s }
+ if container? && title? && container.respond_to?(:with_title)
+ container.with_title { title.to_s }
end
end
attr_reader :name, :show
@@ -34,14 +40,14 @@
def id
"coco-modal-#{name.to_s.dasherize}"
end
def modal_content
- dialog? ? dialog : content
+ container? ? container : content
end
def content
- @dialog_content || super
+ @container_content || super
end
def render_flash_messages
if helpers.respond_to?(:render_turbo_stream_flash_messages)
helpers.render_turbo_stream_flash_messages