Class: LightningUiKit::ModalComponent

Inherits:
BaseComponent
  • Object
show all
Defined in:
app/components/lightning_ui_kit/modal_component.rb

Constant Summary collapse

VARIANTS =
%i[default alert].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id: nil, title: nil, description: nil, open: false, variant: :default, confirm_text: "Continue", cancel_text: "Cancel", confirm_style: :default, **options) ⇒ ModalComponent

Returns a new instance of ModalComponent.



11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/components/lightning_ui_kit/modal_component.rb', line 11

def initialize(id: nil, title: nil, description: nil, open: false, variant: :default,
  confirm_text: "Continue", cancel_text: "Cancel", confirm_style: :default, **options)
  @id = id
  @title = title
  @description = description
  @open = open
  @variant = VARIANTS.include?(variant) ? variant : :default
  @confirm_text = confirm_text
  @cancel_text = cancel_text
  @confirm_style = confirm_style
  @options = options
end

Instance Attribute Details

#cancel_textObject (readonly)

Returns the value of attribute cancel_text.



24
25
26
# File 'app/components/lightning_ui_kit/modal_component.rb', line 24

def cancel_text
  @cancel_text
end

#confirm_textObject (readonly)

Returns the value of attribute confirm_text.



24
25
26
# File 'app/components/lightning_ui_kit/modal_component.rb', line 24

def confirm_text
  @confirm_text
end

Instance Method Details

#alert?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'app/components/lightning_ui_kit/modal_component.rb', line 26

def alert?
  @variant == :alert
end

#confirm_button_styleObject



38
39
40
# File 'app/components/lightning_ui_kit/modal_component.rb', line 38

def confirm_button_style
  (@confirm_style == :destructive) ? :destructive : :default
end

#dataObject



50
51
52
53
54
55
56
57
58
# File 'app/components/lightning_ui_kit/modal_component.rb', line 50

def data
  {
    controller: "lui-modal",
    lui_modal_open_value: @open,
    lui_modal_dismissable_value: !alert?,
    lui_modal_panel_closed_class: panel_closed_class,
    lui_modal_overlay_closed_class: overlay_closed_class
  }.merge(@options[:data] || {})
end

#dialog_roleObject



30
31
32
# File 'app/components/lightning_ui_kit/modal_component.rb', line 30

def dialog_role
  alert? ? "alertdialog" : nil
end

#overlay_closed_classObject



46
47
48
# File 'app/components/lightning_ui_kit/modal_component.rb', line 46

def overlay_closed_class
  "lui:opacity-0"
end

#panel_closed_classObject



42
43
44
# File 'app/components/lightning_ui_kit/modal_component.rb', line 42

def panel_closed_class
  "lui:opacity-0 lui:scale-95"
end

#panel_width_classObject



34
35
36
# File 'app/components/lightning_ui_kit/modal_component.rb', line 34

def panel_width_class
  alert? ? "lui:sm:max-w-lg" : "lui:sm:max-w-3xl"
end