26 lines
521 B
JavaScript
26 lines
521 B
JavaScript
import { Controller } from "@hotwired/stimulus"
|
|
|
|
export default class extends Controller {
|
|
static values = { content: String }
|
|
static classes = [ "success" ]
|
|
|
|
async copy(event) {
|
|
event.preventDefault()
|
|
this.reset()
|
|
|
|
try {
|
|
await navigator.clipboard.writeText(this.contentValue)
|
|
this.element.classList.add(this.successClass)
|
|
} catch {}
|
|
}
|
|
|
|
reset() {
|
|
this.element.classList.remove(this.successClass)
|
|
this.#forceReflow()
|
|
}
|
|
|
|
#forceReflow() {
|
|
this.element.offsetWidth
|
|
}
|
|
}
|