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

Материал из Лигапедия Reborn
Перейти к навигации Перейти к поиску
 
Строка 1: Строка 1:
 
mw.loader.using(['mediawiki.util', 'mediawiki.storage']).done(function () {
 
mw.loader.using(['mediawiki.util', 'mediawiki.storage']).done(function () {
 
var storageKey = 'ligapedia-dark-mode';
 
var storageKey = 'ligapedia-dark-mode';
var isDark = false;
+
var isDark = mw.storage.get(storageKey) === '1';
 
 
try {
 
isDark = localStorage.getItem(storageKey) === '1';
 
} catch (e) {}
 
 
 
if (!isDark) {
 
isDark = mw.storage.get(storageKey) === '1';
 
}
 
  
 
function setTheme(dark) {
 
function setTheme(dark) {
Строка 15: Строка 7:
 
document.documentElement.classList.add('dark-mode');
 
document.documentElement.classList.add('dark-mode');
 
mw.storage.set(storageKey, '1');
 
mw.storage.set(storageKey, '1');
try { localStorage.setItem(storageKey, '1'); } catch (e) {}
 
 
} else {
 
} else {
 
document.documentElement.classList.remove('dark-mode');
 
document.documentElement.classList.remove('dark-mode');
 
mw.storage.set(storageKey, '0');
 
mw.storage.set(storageKey, '0');
try { localStorage.setItem(storageKey, '0'); } catch (e) {}
 
 
}
 
}
 
isDark = dark;
 
isDark = dark;
 
}
 
}
  
setTheme(isDark);
+
if (isDark) {
 +
document.documentElement.classList.add('dark-mode');
 +
}
  
 
var link = mw.util.addPortletLink(
 
var link = mw.util.addPortletLink(
 
'p-personal',
 
'p-personal',
 
'#',
 
'#',
isDark ? 'Светлая тема' : 'Тёмная тема',
+
'Тёмная тема',
 
'pt-dark-mode-toggle',
 
'pt-dark-mode-toggle',
 
'Переключить тему'
 
'Переключить тему'
Строка 40: Строка 32:
 
$(this).text(isDark ? 'Светлая тема' : 'Тёмная тема');
 
$(this).text(isDark ? 'Светлая тема' : 'Тёмная тема');
 
});
 
});
 +
$(link).text(isDark ? 'Светлая тема' : 'Тёмная тема');
 
}
 
}
 
});
 
});

Текущая версия на 17:31, 12 августа 2026

mw.loader.using(['mediawiki.util', 'mediawiki.storage']).done(function () {
	var storageKey = 'ligapedia-dark-mode';
	var isDark = mw.storage.get(storageKey) === '1';

	function setTheme(dark) {
		if (dark) {
			document.documentElement.classList.add('dark-mode');
			mw.storage.set(storageKey, '1');
		} else {
			document.documentElement.classList.remove('dark-mode');
			mw.storage.set(storageKey, '0');
		}
		isDark = dark;
	}

	if (isDark) {
		document.documentElement.classList.add('dark-mode');
	}

	var link = mw.util.addPortletLink(
		'p-personal',
		'#',
		'Тёмная тема',
		'pt-dark-mode-toggle',
		'Переключить тему'
	);

	if (link) {
		$(link).on('click', function (e) {
			e.preventDefault();
			setTheme(!isDark);
			$(this).text(isDark ? 'Светлая тема' : 'Тёмная тема');
		});
		$(link).text(isDark ? 'Светлая тема' : 'Тёмная тема');
	}
});