Class: OkonomiUiKit::Components::ConfirmationModal
Instance Attribute Summary
#view
Instance Method Summary
collapse
#combined_styles, config_class?, config_class_name, config_classes, config_namespace, #config_styles_registry, config_styles_registry, deep_merge, #initialize, #internal_styles_registry, internal_styles_registry, #name, parent_styles_registry, register_styles, resolve_config_classes, #style, #styles, #template_path, #theme_name, #tw_merge, #variant_style
Instance Method Details
#modal_data_attributes(options) ⇒ Object
123
124
125
126
127
|
# File 'app/helpers/okonomi_ui_kit/components/confirmation_modal.rb', line 123
def modal_data_attributes(options)
return "" unless options[:data]
options[:data].map { |k, v| "data-#{k.to_s.dasherize}=\"#{v}\"" }.join(" ").html_safe
end
|
#modal_icon_class(variant) ⇒ Object
116
117
118
119
120
121
|
# File 'app/helpers/okonomi_ui_kit/components/confirmation_modal.rb', line 116
def modal_icon_class(variant)
[
style(:icon, :class),
style(:icon, :variants, variant, :icon)
].compact.join(" ")
end
|
#modal_icon_wrapper_class(variant) ⇒ Object
109
110
111
112
113
114
|
# File 'app/helpers/okonomi_ui_kit/components/confirmation_modal.rb', line 109
def modal_icon_wrapper_class(variant)
[
style(:icon, :wrapper),
style(:icon, :variants, variant, :wrapper)
].compact.join(" ")
end
|
#modal_panel_class(size) ⇒ Object
Helper methods to build classes from styles
102
103
104
105
106
107
|
# File 'app/helpers/okonomi_ui_kit/components/confirmation_modal.rb', line 102
def modal_panel_class(size)
[
style(:panel, :base),
style(:panel, :sizes, size)
].compact.join(" ")
end
|
#render(options = {}, &block) ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'app/helpers/okonomi_ui_kit/components/confirmation_modal.rb', line 4
def render(options = {}, &block)
options = options.with_indifferent_access
title = options.fetch(:title) { raise ArgumentError, "title is required" }
message = options.fetch(:message) { raise ArgumentError, "message is required" }
confirm_text = options.delete(:confirm_text) || "Confirm"
cancel_text = options.delete(:cancel_text) || "Cancel"
variant = (options.delete(:variant) || :warning).to_sym
size = (options.delete(:size) || :md).to_sym
auto_open = options.delete(:auto_open) || false
modal_options = {
title: title,
message: message,
confirm_text: confirm_text,
cancel_text: cancel_text,
variant: variant,
size: size,
auto_open: auto_open,
has_custom_actions: block_given?,
data: options.delete(:data) || {}
}.merge(options)
view.render(template_path, component: self, options: modal_options, &block)
end
|