HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/ste.komma.pro/resources/js/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();