Class: PhlexyUI::Modal

Inherits:
Base
  • Object
show all
Defined in:
lib/phlexy_ui/modal.rb

Instance Method Summary collapse

Methods inherited from Base

modifiers

Constructor Details

#initialize(id:) ⇒ Modal

Returns a new instance of Modal.



5
6
7
8
# File 'lib/phlexy_ui/modal.rb', line 5

def initialize(*, id:, **)
  super(*, **)
  @id = id
end

Instance Method Details

#action(as: :div, **options) ⇒ Object



37
38
39
40
41
42
43
44
45
# File 'lib/phlexy_ui/modal.rb', line 37

def action(*, as: :div, **options, &)
  generate_classes!(
    # "modal-action"
    component_html_class: :"modal-action",
    options:
  ).then do |classes|
    public_send(as, class: classes, **options, &)
  end
end

#backdrop(**options) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
# File 'lib/phlexy_ui/modal.rb', line 47

def backdrop(*, **options, &)
  generate_classes!(
    # "modal-backdrop"
    component_html_class: :"modal-backdrop",
    options:
  ).then do |classes|
    form method: :dialog, class: classes, **options do
      button
    end
  end
end

#body(as: :div, **options) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/phlexy_ui/modal.rb', line 22

def body(*, as: :div, **options, &)
  generate_classes!(
    # "modal-box"
    component_html_class: :"modal-box",
    options:
  ).then do |classes|
    if base_modifiers.include?(:tap_outside_to_close)
      public_send(as, class: classes, **options, &)
      backdrop
    else
      public_send(as, class: classes, **options, &)
    end
  end
end

#close_buttonObject



59
60
61
62
63
# File 'lib/phlexy_ui/modal.rb', line 59

def close_button(*, **, &)
  form method: :dialog do
    render PhlexyUI::Button.new(*, **, &)
  end
end

#view_templateObject



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/phlexy_ui/modal.rb', line 10

def view_template(&)
  generate_classes!(
    # "modal"
    component_html_class: :modal,
    modifiers_map: modifiers,
    base_modifiers:,
    options:
  ).then do |classes|
    dialog(id:, class: classes, **options, &)
  end
end