বিষয়বস্তুতে চলুন

মিডিয়াউইকি:Common.js: সংশোধিত সংস্করণের মধ্যে পার্থক্য

বইপিডিয়া থেকে
সম্পাদনা সারাংশ নেই
ট্যাগ: পুনর্বহালকৃত
ARI (আলাপ)-এর সম্পাদিত সংস্করণ হতে Rafiqur Rahman Priyam-এর সম্পাদিত সর্বশেষ সংস্করণে ফেরত যাওয়া হয়েছে
ট্যাগ: খালি করা পুনর্বহাল
 
(একই ব্যবহারকারী দ্বারা সম্পাদিত ২টি মধ্যবর্তী সংশোধন দেখানো হচ্ছে না)
১ নং লাইন: ১ নং লাইন:
// MediaWiki Sticky Header Search Collapse
 
(function() {
    'use strict';
   
    function initSearchToggle() {
        // Find the search toggle button
        const searchToggle = document.querySelector('.vector-sticky-header-visible .search-toggle');
        const searchBox = document.querySelector('.vector-sticky-header-visible .vector-search-box');
        const searchContainer = document.querySelector('.vector-sticky-header-visible .vector-typeahead-search-container');
        const searchInput = document.querySelector('.vector-sticky-header-visible .cdx-text-input__input');
       
        if (!searchToggle || !searchBox || !searchContainer) return;
       
        // Remove old event listeners by cloning
        const newToggle = searchToggle.cloneNode(true);
        searchToggle.parentNode.replaceChild(newToggle, searchToggle);
       
        // Toggle search on icon click
        newToggle.addEventListener('click', function(e) {
            e.preventDefault();
            e.stopPropagation();
           
            searchContainer.classList.add('search-active');
            newToggle.classList.add('search-hidden');
           
            // Focus the input
            if (searchInput) {
                setTimeout(function() {
                    searchInput.focus();
                }, 50);
            }
        });
       
        // Close when clicking outside
        document.addEventListener('click', function(e) {
            if (!searchBox.contains(e.target)) {
                searchContainer.classList.remove('search-active');
                newToggle.classList.remove('search-hidden');
            }
        });
       
        // Prevent closing when clicking inside search
        searchContainer.addEventListener('click', function(e) {
            e.stopPropagation();
        });
    }
   
    // Run when page loads
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', function() {
            setTimeout(initSearchToggle, 500);
        });
    } else {
        setTimeout(initSearchToggle, 500);
    }
   
    // Re-run when sticky header appears (when scrolling)
    let scrollTimeout;
    window.addEventListener('scroll', function() {
        clearTimeout(scrollTimeout);
        scrollTimeout = setTimeout(initSearchToggle, 100);
    });
   
    // Also observe for class changes on body
    const observer = new MutationObserver(function() {
        initSearchToggle();
    });
   
    const body = document.querySelector('body');
    if (body) {
        observer.observe(body, {
            attributes: true,
            attributeFilter: ['class']
        });
    }
})();

২২:৪১, ৪ জানুয়ারি ২০২৬ তারিখে সম্পাদিত সর্বশেষ সংস্করণ