export default function singles(): void { const isSingleRevue: HTMLElement | null = document.querySelector('.page--single-revue'); const isSingleArticle: HTMLElement | null = document.querySelector('.page--single-articles'); if (!isSingleRevue && !isSingleArticle) return; handleCiteButton(); } function handleCiteButton(): void { const citeButton: HTMLElement | null = document.querySelector( '.socials-buttons__button--cite' ); const citeReference: HTMLElement | null = document.querySelector('#cite-reference'); if (!citeButton || !citeReference) return; if (!window.isSecureContext) { citeButton.setAttribute('disabled', 'true'); citeButton.setAttribute( 'title', 'Vous devez utiliser un navigation sécurisé (https) pour copier la citation' ); } citeButton.addEventListener('click', () => { const textToCopy = citeReference.textContent; if (!textToCopy) return; if (navigator.clipboard && window.isSecureContext) { console.log('fallback'); navigator.clipboard .writeText(textToCopy) .then(() => { const notyf = new Notyf({ duration: 1000, ripple: false, dismissible: true, types: [ { type: 'success', icon: { className: 'notyf__icon--success', tagName: 'i', }, }, ], position: { x: 'right', y: 'top', }, }); notyf.success('Citation copiée !'); }) .catch((err) => { console.error('Failed to copy text: ', err); }); } }); }