Module: UI::AlertDialogTriggerBehavior
- Included in:
- AlertDialogTrigger
- Defined in:
- app/behaviors/ui/alert_dialog_trigger_behavior.rb
Overview
Shared behavior for AlertDialog Trigger component Handles classes and Stimulus actions
Instance Method Summary collapse
-
#alert_dialog_trigger_base_classes ⇒ Object
Base CSS classes for alert dialog trigger wrapper.
-
#alert_dialog_trigger_classes ⇒ Object
Merge base classes with custom classes using TailwindMerge.
-
#alert_dialog_trigger_data_attributes ⇒ Object
Data attributes for Stimulus action.
-
#alert_dialog_trigger_html_attributes ⇒ Object
Build complete HTML attributes hash for alert dialog trigger.
-
#merged_alert_dialog_trigger_data_attributes ⇒ Object
Merge user-provided data attributes.
Instance Method Details
#alert_dialog_trigger_base_classes ⇒ Object
Base CSS classes for alert dialog trigger wrapper
9 10 11 |
# File 'app/behaviors/ui/alert_dialog_trigger_behavior.rb', line 9 def alert_dialog_trigger_base_classes "inline-flex" end |
#alert_dialog_trigger_classes ⇒ Object
Merge base classes with custom classes using TailwindMerge
14 15 16 |
# File 'app/behaviors/ui/alert_dialog_trigger_behavior.rb', line 14 def alert_dialog_trigger_classes TailwindMerge::Merger.new.merge([alert_dialog_trigger_base_classes, @classes].compact.join(" ")) end |
#alert_dialog_trigger_data_attributes ⇒ Object
Data attributes for Stimulus action
19 20 21 22 23 |
# File 'app/behaviors/ui/alert_dialog_trigger_behavior.rb', line 19 def alert_dialog_trigger_data_attributes { action: "click->ui--alert-dialog#open" } end |
#alert_dialog_trigger_html_attributes ⇒ Object
Build complete HTML attributes hash for alert dialog trigger
32 33 34 35 36 37 38 |
# File 'app/behaviors/ui/alert_dialog_trigger_behavior.rb', line 32 def alert_dialog_trigger_html_attributes base_attrs = @attributes&.except(:data) || {} base_attrs.merge( class: alert_dialog_trigger_classes, data: merged_alert_dialog_trigger_data_attributes ) end |
#merged_alert_dialog_trigger_data_attributes ⇒ Object
Merge user-provided data attributes
26 27 28 29 |
# File 'app/behaviors/ui/alert_dialog_trigger_behavior.rb', line 26 def merged_alert_dialog_trigger_data_attributes user_data = @attributes&.fetch(:data, {}) || {} user_data.merge(alert_dialog_trigger_data_attributes) end |