← back to Wallpaperdistributors
public/js/main.js
46 lines
(function () {
const root = document.documentElement;
const toggle = document.getElementById('theme-toggle');
if (toggle) {
toggle.addEventListener('click', () => {
const next = root.getAttribute('data-theme') === 'light' ? 'dark' : 'light';
if (next === 'light') root.setAttribute('data-theme', 'light');
else root.removeAttribute('data-theme');
try { localStorage.setItem('wpd-theme', next); } catch (e) {}
});
}
const grid = document.getElementById('rep-grid');
const slider = document.getElementById('density-slider');
if (slider && grid) {
let saved = null;
try { saved = localStorage.getItem('wpd-density'); } catch (e) {}
if (saved) {
slider.value = saved;
grid.style.setProperty('--cols-min', saved + 'px');
}
slider.addEventListener('input', () => {
grid.style.setProperty('--cols-min', slider.value + 'px');
try { localStorage.setItem('wpd-density', slider.value); } catch (e) {}
});
}
const sortSelect = document.getElementById('sort-select');
if (sortSelect) {
let savedSort = null;
try { savedSort = localStorage.getItem('wpd-sort'); } catch (e) {}
const url = new URL(window.location.href);
if (savedSort && !url.searchParams.get('sort') && sortSelect.value === 'newest' && savedSort !== 'newest') {
url.searchParams.set('sort', savedSort);
window.location.replace(url.toString());
return;
}
sortSelect.addEventListener('change', () => {
try { localStorage.setItem('wpd-sort', sortSelect.value); } catch (e) {}
const u = new URL(window.location.href);
u.searchParams.set('sort', sortSelect.value);
window.location.assign(u.toString());
});
}
})();