×
document.addEventListener('DOMContentLoaded', function () {
const modal = document.getElementById('vssShareModal');
if (!modal) return;
const titleEl = document.getElementById('vssShareTitle');
const subtitleEl = document.getElementById('vssShareSubtitle');
const phraseEl = document.getElementById('vssSharePhrase');
const imageEl = document.getElementById('vssShareImage');
let currentTitle = '';
let currentUrl = '';
let currentPhrase = '';
function setPreview(button) {
currentTitle = button.dataset.title || document.title;
currentUrl = button.dataset.url || window.location.href;
currentPhrase = button.dataset.phrase || 'Una scoperta selezionata su Vetrineshop.';
const subtitle = button.dataset.subtitle || '';
const image = button.dataset.image || '';
if (titleEl) titleEl.textContent = currentTitle;
if (subtitleEl) subtitleEl.textContent = subtitle;
if (phraseEl) phraseEl.textContent = currentPhrase;
if (imageEl) {
if (image) {
imageEl.style.backgroundImage = `url("${image}")`;
imageEl.classList.remove('is-empty');
} else {
imageEl.style.backgroundImage = '';
imageEl.classList.add('is-empty');
}
}
}
function setShareLinks() {
const text = `${currentPhrase}\n${currentTitle}`;
modal.querySelector('[data-vss-whatsapp]').href =
`https://wa.me/?text=${encodeURIComponent(text + '\n' + currentUrl)}`;
modal.querySelector('[data-vss-facebook]').href =
`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(currentUrl)}`;
modal.querySelector('[data-vss-telegram]').href =
`https://t.me/share/url?url=${encodeURIComponent(currentUrl)}&text=${encodeURIComponent(text)}`;
modal.querySelector('[data-vss-x]').href =
`https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(currentUrl)}`;
modal.querySelector('[data-vss-linkedin]').href =
`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(currentUrl)}`;
}
function openModal(button) {
setPreview(button);
setShareLinks();
modal.classList.add('is-open');
modal.setAttribute('aria-hidden', 'false');
document.body.classList.add('vss-modal-open');
}
function closeModal() {
modal.classList.remove('is-open');
modal.setAttribute('aria-hidden', 'true');
document.body.classList.remove('vss-modal-open');
}
document.addEventListener('click', function (e) {
const shareButton = e.target.closest('[data-vss-share]');
if (shareButton) {
e.preventDefault();
openModal(shareButton);
return;
}
if (e.target.closest('[data-vss-close]')) {
e.preventDefault();
closeModal();
return;
}
if (e.target.closest('[data-vss-copy-link]')) {
e.preventDefault();
navigator.clipboard.writeText(currentUrl);
return;
}
if (e.target.closest('[data-vss-copy-text]')) {
e.preventDefault();
navigator.clipboard.writeText(`${currentPhrase}\n${currentTitle}\n${currentUrl}`);
}
});
document.addEventListener('keydown', function (e) {
if (e.key === 'Escape') closeModal();
});
});