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

Instance Method Details

#alert_dialog_trigger_base_classesObject

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_classesObject

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_attributesObject

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_attributesObject

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_attributesObject

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