MediaWiki:Common.js: различия между версиями

Страница интерфейса MediaWiki
мНет описания правки
Метка: отменено
мНет описания правки
Метка: отменено
Строка 7: Строка 7:
// Загружаем сохраненную тему
// Загружаем сохраненную тему
document.addEventListener('DOMContentLoaded', function() {
document.addEventListener('DOMContentLoaded', function() {
     const savedTheme = localStorage.getItem('theme');
     var savedTheme = localStorage.getItem('theme');
     if (savedTheme === 'dark') {
     if (savedTheme === 'dark') {
         document.body.classList.add('dark-theme');
         document.body.classList.add('dark-theme');
Строка 13: Строка 13:
});
});


// Ждем полной загрузки скина
// Добавляем кнопку для Citizen
mw.hook('citizen.ready').add(function() {
mw.hook('citizen.load').add(function() {
     const button = document.createElement('button');
     // Создаем кнопку
     button.textContent = '🌓 Тема';
    var button = document.createElement('button');
     button.className = 'citizen-header__button';
     button.innerHTML = '🌓 Тема';
     button.style.margin = '0 10px';
    button.style.padding = '8px 12px';
    button.style.cursor = 'pointer';
    button.style.background = 'var(--background-color)';
    button.style.color = 'var(--color-base)';
    button.style.border = '1px solid var(--border-color-base)';
    button.style.borderRadius = '4px';
     button.onclick = toggleTheme;
     button.onclick = toggleTheme;
   
 
     // Добавляем кнопку рядом с иконкой пользователя
     // Вставляем кнопку в верхнюю панель Citizen
     const userMenu = document.querySelector('.citizen-header__user');
     var headerTools = document.querySelector('.citizen-header__tools');
     if (userMenu) {
     if (headerTools) {
         userMenu.before(button);
         headerTools.insertBefore(button, headerTools.firstChild);
    } else {
        var citizenHeader = document.querySelector('.citizen-header');
        if (citizenHeader) {
            citizenHeader.appendChild(button);
        }
     }
     }
});
});

Версия от 14:18, 1 апреля 2025

// Объявляем функцию глобально
window.toggleTheme = function() {
    document.body.classList.toggle('dark-theme');
    localStorage.setItem('theme', document.body.classList.contains('dark-theme') ? 'dark' : 'light');
};

// Загружаем сохраненную тему
document.addEventListener('DOMContentLoaded', function() {
    var savedTheme = localStorage.getItem('theme');
    if (savedTheme === 'dark') {
        document.body.classList.add('dark-theme');
    }
});

// Добавляем кнопку для Citizen
mw.hook('citizen.load').add(function() {
    // Создаем кнопку
    var button = document.createElement('button');
    button.innerHTML = '🌓 Тема';
    button.style.margin = '0 10px';
    button.style.padding = '8px 12px';
    button.style.cursor = 'pointer';
    button.style.background = 'var(--background-color)';
    button.style.color = 'var(--color-base)';
    button.style.border = '1px solid var(--border-color-base)';
    button.style.borderRadius = '4px';
    button.onclick = toggleTheme;

    // Вставляем кнопку в верхнюю панель Citizen
    var headerTools = document.querySelector('.citizen-header__tools');
    if (headerTools) {
        headerTools.insertBefore(button, headerTools.firstChild);
    } else {
        var citizenHeader = document.querySelector('.citizen-header');
        if (citizenHeader) {
            citizenHeader.appendChild(button);
        }
    }
});