clone of github.com/decent-newsroom/newsroom
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

33 lines
910 B

// assets/controllers/share_dropdown_controller.js
import { Controller } from '@hotwired/stimulus';
export default class extends Controller {
static targets = ['menu', 'button'];
connect() {
document.addEventListener('click', this.closeMenu);
}
disconnect() {
document.removeEventListener('click', this.closeMenu);
}
toggle(event) {
event.stopPropagation();
this.menuTarget.style.display = this.menuTarget.style.display === 'block' ? 'none' : 'block';
}
closeMenu = () => {
this.menuTarget.style.display = 'none';
}
copy(event) {
const el = event.currentTarget;
const text = el.dataset.copy;
navigator.clipboard.writeText(text).then(() => {
const orig = el.innerHTML;
el.innerHTML = 'Copied!';
setTimeout(() => { el.innerHTML = orig; }, 1200);
});
}
}