open-consul/ui/packages/consul-ui/app/components/copy-button/index.hbs

36 lines
902 B
Handlebars

{{!
Copyright (c) HashiCorp, Inc.
SPDX-License-Identifier: MPL-2.0
}}
<StateChart
@src={{this.chart}}
as |State Guard Action dispatch state|
>
<div
class="copy-button"
...attributes
>
{{#let (fn dispatch 'SUCCESS') (fn dispatch 'ERROR') (fn dispatch 'RESET') as |success error reset|}}
<button
{{with-copyable @value success=success error=error}}
aria-label={{t 'components.copy-button.title' name=@name}}
type="button"
class="copy-btn"
...attributes
{{tooltip
(if (state-matches state 'success') (t 'components.copy-button.success' name=@name) (t 'components.copy-button.error'))
options=(hash
trigger='manual'
showOnCreate=(not (state-matches state 'idle'))
delay=(array 0 3000)
onHidden=reset
)
}}
>
{{~yield~}}
</button>
{{/let}}
</div>
</StateChart>