File: D:/HostingSpaces/SBogers10/farmfun.komma.pro/resources/js/site/components/shareButtonsHandler.js
/* ==========================================================================
Share buttons handler
========================================================================== */
const ShareButtonsHandler = {
shareButtonsElement: null,
shareMessageElement: null,
shareMessage: null,
init: function () {
// Get the youtube players containers
ShareButtonsHandler.shareButtonsElement = document.getElementById('js-shareButtons');
ShareButtonsHandler.shareMessageElement = document.getElementById('js-shareButtonData');
if (isset(ShareButtonsHandler.shareButtonsElement) && isset(ShareButtonsHandler.shareMessageElement)) {
ShareButtonsHandler.convertShareMessageToObject();
const items = ShareButtonsHandler.shareButtonsElement.querySelectorAll('.js-social-media-item');
const buttons = ShareButtonsHandler.shareButtonsElement.querySelectorAll('.js-social-media-button');
const buttonsLength = buttons.length;
for (let i = 0; i < buttonsLength; i++) {
const button = buttons[i];
const item = items[i];
button.addEventListener('click', function () {
const social = item.getAttribute('data-social');
let functionName = 'click' + capitalizeFirstLetter(social) + 'Button';
if(typeof ShareButtonsHandler[functionName] === 'function'){
ShareButtonsHandler[functionName]();
}
else{
console.log('Method not build yet: ' + functionName);
}
});
}
}
},
convertShareMessageToObject: function () {
let messageObject = {};
for (let i = 0, attributes = ShareButtonsHandler.shareMessageElement.attributes, attributesLength = attributes.length; i < attributesLength; i++) {
const attribute = attributes[i];
let attributeName = attribute.name;
attributeName = attributeName.replace(/data-/g, '');
attributeName = snakeToCamel(attributeName);
messageObject[attributeName] = attribute.value;
}
ShareButtonsHandler.shareMessage = messageObject;
},
clickFacebookButton: function () {
FB.ui({
method: 'share',
mobile_iframe: true,
href: ShareButtonsHandler.shareMessage.url,
}, function (response) {
});
},
clickTwitterButton: function () {
window.open('https://twitter.com/intent/tweet?text=' + ShareButtonsHandler.shareMessage.encodeName + '&url=' + ShareButtonsHandler.shareMessage.encodeUrl , 'newwindow', 'width=500, height=600');
},
clickLinkedinButton: function () {
window.open('https://www.linkedin.com/shareArticle?mini=true&url='+ ShareButtonsHandler.shareMessage.encodeUrl +'&title='+ ShareButtonsHandler.shareMessage.encodeName +'&summary=' + ShareButtonsHandler.shareMessage.encodeSummary, 'newwindow', 'width=500, height=600');
},
clickMailButton: function () {
window.open('mailto:?subject='+ShareButtonsHandler.shareMessage.name+'&body='+ShareButtonsHandler.shareMessage.url, '_self');
},
clickLinkButton: function () {
ShareButtonsHandler.shareMessageElement.select();
copyToClipboard('#js-shareButtonData');
const flashMessage = ShareButtonsHandler.shareButtonsElement.querySelector('.js-link-copied-message');
flashMessage.classList.add('clicked');
setTimeout(function () {
flashMessage.classList.remove('clicked');
}, 2000);
},
};
ShareButtonsHandler.init();