İçeriğe atla

MediaWiki:Gadget-SocialTtrigger.js

wikishia sitesinden

Not: Yayımladıktan sonra değişiklikleri görmeniz için tarayıcınızın önbelleğini temizlemeniz gerekebilir.

  • Firefox / Safari: Shift tuşuna basılıyken Yeniden Yükle'ye tıklayın ya da Ctrl-F5 ya da Ctrl-R tıklayın (Mac için ⌘-R)
  • Google Chrome: Ctrl-Shift-R'ye basın. (Mac için ⌘-Shift-R)
  • Edge: Ctrl basılıyken Yenile'ye tıklayın ya da Ctrl-F5'e basın.
(() => {
    if (!mw || !mw.config) return;

    const userName = mw.config.get('wgUserName');
    if (userName) return;

    const namespaceNumber = mw.config.get('wgNamespaceNumber');
    if (namespaceNumber !== 0) return;

    const skin = mw.config.get('skin'); 
    const isMobile = skin === 'minerva'; 

    const addSocialMenu = () => {
        const socialContainer = document.createElement('div');
        socialContainer.classList.add('social-container');

        socialContainer.innerHTML = `
          <div class="social-trigger">
            <img src="https://commons.wikishia.net/w/images/e/e0/Socialmedia1.svg" alt="Trigger Icon">
          </div>
          <div class="social-menu">
            <div class="social-item" data-url="https://t.me/wikishia_turk">
              <img src="https://commons.wikishia.net/w/images/8/82/Telegram.svg" alt="Telegram Icon">
              <span>Telegram</span>
            </div>
            <div class="social-item" data-url="https://wa.me/channel/0029Vb1pkvj4NVipEMO8x52C">
              <img src="https://commons.wikishia.net/w/images/d/d6/Whatsapp.svg" alt="WhatsApp Icon">
              <span>WhatsApp</span>
            </div>
          </div>
        `;

        document.body.appendChild(socialContainer);

        const socialItems = socialContainer.querySelectorAll('.social-item');
        socialItems.forEach(item => {
            item.addEventListener('click', () => {
                const url = item.getAttribute('data-url');
                if (url) {
                    window.open(url, '_blank');
                }
            });
        });

        const trigger = socialContainer.querySelector('.social-trigger');
        const socialMenu = socialContainer.querySelector('.social-menu');

        if (isMobile) {
            trigger.addEventListener('click', (event) => {
                event.stopPropagation();
                socialContainer.classList.toggle('active');
            });

            document.addEventListener('click', (event) => {
                if (!socialContainer.contains(event.target)) {
                    socialContainer.classList.remove('active');
                }
            });
        } else {
            let hideTimeout;

            socialContainer.addEventListener('mouseenter', () => {
                clearTimeout(hideTimeout);
                socialContainer.classList.add('active');
            });

            socialContainer.addEventListener('mouseleave', () => {
                hideTimeout = setTimeout(() => {
                    socialContainer.classList.remove('active');
                }, 5000);
            });
        }
    };

    setTimeout(() => addSocialMenu(), 500);
})();