Module: ModalStack::Helpers::ModalStackContainerHelper

Defined in:
lib/modal_stack/helpers/modal_stack_container_helper.rb

Overview

Wraps the layout content in the panel structure expected by the JS runtime. The layout ‘modal.html.erb` typically reads:

<%= modal_stack_container size: :md, dismissible: true do %>
  <%= yield %>
<% end %>

Constant Summary collapse

DEFAULT_SIZE =
:md

Instance Method Summary collapse

Instance Method Details



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/modal_stack/helpers/modal_stack_container_helper.rb', line 15

def modal_stack_container(size: DEFAULT_SIZE, dismissible: true, variant: :modal, side: nil, width: nil, height: nil, html: {},
                          &)
  classes = ["modal-stack__panel", "modal-stack__panel--#{variant}", "modal-stack__panel--size-#{size}"]
  classes << "modal-stack__panel--side-#{side}" if side

  attrs = {
    class: [classes, html[:class]].compact.join(" "),
    data: {
      modal_stack_size: size,
      modal_stack_variant: variant,
      modal_stack_dismissible: dismissible.to_s,
      modal_stack_side: side,
      modal_stack_width: width,
      modal_stack_height: height
    }.merge(html.fetch(:data, {})).compact
  }.merge(html.except(:class, :data))

  (:div, capture(&), **attrs)
end