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