Module: WildayUi::Components::Button::Features::CopyToClipboard

Included in:
WildayUi::Components::Button::FeatureEngine
Defined in:
app/helpers/wilday_ui/components/button/features/copy_to_clipboard.rb

Constant Summary collapse

FEATURE_CONFIG =
{
  wrapper_required: true,
  stimulus_controller: "clipboard button",
  default_stimulus_action: "click->clipboard#copy click->button#toggleLoading"
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.feature_configObject



12
13
14
# File 'app/helpers/wilday_ui/components/button/features/copy_to_clipboard.rb', line 12

def self.feature_config
  { copy_to_clipboard: FEATURE_CONFIG }
end

Instance Method Details

#setup_clipboard_options(options, additional_classes, copy_to_clipboard, wrapper_data) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/helpers/wilday_ui/components/button/features/copy_to_clipboard.rb', line 16

def setup_clipboard_options(options, additional_classes, copy_to_clipboard, wrapper_data)
  return unless copy_to_clipboard.present?

  clipboard_config = normalize_clipboard_options(copy_to_clipboard)

  wrapper_data.merge!(
    controller: FEATURE_CONFIG[:stimulus_controller],
    clipboard_text_value: clipboard_config[:text],
    clipboard_feedback_text_value: clipboard_config[:feedback_text],
    clipboard_feedback_position_value: clipboard_config[:position],
    clipboard_feedback_duration_value: clipboard_config[:duration]
  )

  options[:data][:clipboard_target] = "button"
  options[:data][:button_target] = "button"
end