open-consul/ui/packages/consul-ui/app/components/copy-button
John Cowen 61842beb3b
ui: CopyButton amends (#10511)
* ui: Add with-copyable modifier

* Use with-copyable modifier for our own CopyButton

* Move copy-button styling and remove most of `copy-btn`
2021-07-06 16:56:36 +01:00
..
chart.xstate.js
index.hbs ui: CopyButton amends (#10511) 2021-07-06 16:56:36 +01:00
index.js ui: CopyButton amends (#10511) 2021-07-06 16:56:36 +01:00
index.scss ui: CopyButton amends (#10511) 2021-07-06 16:56:36 +01:00
layout.scss ui: CopyButton amends (#10511) 2021-07-06 16:56:36 +01:00
README.mdx ui: CopyButton amends (#10511) 2021-07-06 16:56:36 +01:00
skin.scss ui: CopyButton amends (#10511) 2021-07-06 16:56:36 +01:00

# CopyButton

Button component used for copy-to-clipboard functionality so the user can easily copy specified text to their clipboard, along with tooltip-like notifications so the user has some sort of feedback to know the value has been copied.

This component is essentially a composition of our `{{with-copyable}}` modifier, our `{{tooltip}}` modifier plus specific Consul-flavored visual treatment. This is all glued together with our `<StateChart />` component to manage states.

Can be used inline to render only a small icon for the button with no other text.

```hbs preview-template
<figure>
  <figcaption>Icon only</figcaption>

  <CopyButton
    @value={{'stringToCopy'}}
    @name="Thing"
  />

</figure>

<figure>
  <figcaption>Icon and text</figcaption>

  <CopyButton
    @value={{'stringToCopy'}}
    @name="Thing"
  >
    Copy me!
  </CopyButton>
</figure>
```

## Arguments

| Argument | Type | Default | Description |
| --- | --- | --- | --- |
| `value` | `String` | | The string to be copied to the clipboard on click |
| `name` | `String` | | The 'Name' of the string to be copied. Mainly used for accessibility reasons and giving feedback to the user |


## See

- [Component Source Code](./index.js)
- [Template Source Code](./index.hbs)

---