This commit is contained in:
25
app/javascript/controllers/copy_to_clipboard_controller.js
Normal file
25
app/javascript/controllers/copy_to_clipboard_controller.js
Normal file
@@ -0,0 +1,25 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user