Class: PhlexKit::Clipboard

Inherits:
BaseComponent show all
Defined in:
app/components/phlex_kit/clipboard/clipboard.rb

Overview

Copy-to-clipboard with success/error confirmation popovers (CSS-positioned, no @floating-ui). Ported from ruby_ui's RubyUI::Clipboard. Compose Clipboard > (ClipboardSource + ClipboardTrigger). phlex-kit--clipboard.

Instance Method Summary collapse

Methods inherited from BaseComponent

#on

Constructor Details

#initialize(success: "Copied!", error: "Copy failed!", **attrs) ⇒ Clipboard

Returns a new instance of Clipboard.



6
7
8
9
10
# File 'app/components/phlex_kit/clipboard/clipboard.rb', line 6

def initialize(success: "Copied!", error: "Copy failed!", **attrs)
  @success = success
  @error = error
  @attrs = attrs
end

Instance Method Details

#view_template(&block) ⇒ Object



11
12
13
14
15
16
17
# File 'app/components/phlex_kit/clipboard/clipboard.rb', line 11

def view_template(&block)
  div(**mix({ class: "pk-clipboard", data: { controller: "phlex-kit--clipboard", action: "click@window->phlex-kit--clipboard#onClickOutside" } }, @attrs)) do
    div(&block)
    render PhlexKit::ClipboardPopover.new(type: :success) { @success }
    render PhlexKit::ClipboardPopover.new(type: :error) { @error }
  end
end