Class: PhlexKit::DialogContent

Inherits:
BaseComponent show all
Defined in:
app/components/phlex_kit/dialog/dialog_content.rb

Constant Summary collapse

SIZES =
{ xs: "xs", sm: "sm", md: nil, lg: "lg", xl: "xl", full: "full" }.freeze

Instance Method Summary collapse

Methods inherited from BaseComponent

#on

Constructor Details

#initialize(size: :md, **attrs) ⇒ DialogContent

Returns a new instance of DialogContent.



4
5
6
7
# File 'app/components/phlex_kit/dialog/dialog_content.rb', line 4

def initialize(size: :md, **attrs)
  @size = size.to_sym
  @attrs = attrs
end

Instance Method Details

#view_template(&block) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'app/components/phlex_kit/dialog/dialog_content.rb', line 8

def view_template(&block)
  cls = ["pk-dialog", SIZES.fetch(@size)].compact.join(" ")
  dialog(**mix({ class: cls, data: { phlex_kit__dialog_target: "dialog", action: "click->phlex-kit--dialog#backdropClick" } }, @attrs)) do
    yield
    button(type: "button", class: "pk-overlay-close", data: { action: "click->phlex-kit--dialog#dismiss" }) do
      render Icon.new(:x, size: 15)
      span(class: "pk-sr-only") { "Close" }
    end
  end
end