User:Trang Oul/common.js

From Basin Wiki
Jump to navigation Jump to search

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
'use strict';
console.log('script');
mw.loader.using([]).then(() => {
	const getMode = () => {
		return localStorage.getItem('d2Mode') || 'd2';
	};
	const fallbackOrder = {
		d2r: ['d2r', 'd2rLowend', 'd2'],
		d2rLowend: ['d2rLowend', 'd2r', 'd2'],
		d2: ['d2', 'd2rLowend', 'd2r']
	};
	const applyImages = () => {
		const mode = getMode();
		const order = fallbackOrder[mode] || fallbackOrder.d2;
		const containers = document.querySelectorAll('.d2image');
		console.log(mode);
		console.log(order);
		console.log(containers);
		for (const container of containers) {
			const variants = container.querySelectorAll('.d2image-variant');
			let selected = null;
			for (const candidate of order) {
				selected = Array.from(variants)
					.find(v => v.dataset.variant === candidate);
				if (selected) {
					break;
				}
			}
			if (!selected) {
				continue;
			}
			for (const variant of variants) {
				variant.style.display = 'none';
			}
			selected.style.display = '';
		}
	};
	applyImages();
});