Add a clipboard controller and wire up the copy button
This commit is contained in:
16
app/javascript/controllers/clipboard_controller.js
Normal file
16
app/javascript/controllers/clipboard_controller.js
Normal file
@@ -0,0 +1,16 @@
|
||||
import { Controller } from "@hotwired/stimulus"
|
||||
|
||||
export default class extends Controller {
|
||||
static targets = ["source", "trigger"]
|
||||
|
||||
copy (event) {
|
||||
event.preventDefault();
|
||||
navigator.clipboard.writeText(this.sourceTarget.value);
|
||||
this.triggerTarget.querySelector('.content-initial').classList.add('hidden');
|
||||
this.triggerTarget.querySelector('.content-active').classList.remove('hidden');
|
||||
setTimeout(() => {
|
||||
this.triggerTarget.querySelector('.content-initial').classList.remove('hidden');
|
||||
this.triggerTarget.querySelector('.content-active').classList.add('hidden');
|
||||
}, 2000)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user