mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-09-06 09:56:09 +00:00
[matrix] Add sans-serif font toggle to settings modal
* Add sans serif font toggle * remove unnecessary boolean comparison from setFont Co-authored-by: slice <ryaneft@gmail.com> * Update checkbox title Co-authored-by: slice <ryaneft@gmail.com> * General cleanup of settings system * Apply overflow hidden to modal Co-authored-by: slice <ryaneft@gmail.com>
This commit is contained in:
38
docs/_static/custom.js
vendored
38
docs/_static/custom.js
vendored
@ -3,7 +3,7 @@
|
||||
let activeModal = null;
|
||||
let activeLink = null;
|
||||
let bottomHeightThreshold, sections;
|
||||
let settings;
|
||||
let settingsModal;
|
||||
|
||||
function closeModal(modal) {
|
||||
activeModal = null;
|
||||
@ -19,10 +19,29 @@ function openModal(modal) {
|
||||
modal.style.removeProperty('display');
|
||||
}
|
||||
|
||||
function updateSetting(element) {
|
||||
localStorage.setItem(element.name, element.checked);
|
||||
if (element.name in settings) {
|
||||
settings[element.name](element.checked);
|
||||
}
|
||||
}
|
||||
|
||||
function getBodyClassToggle(className) {
|
||||
function toggleBodyClass(add) {
|
||||
document.body.classList.toggle(className, add);
|
||||
}
|
||||
return toggleBodyClass;
|
||||
}
|
||||
|
||||
const settings = {
|
||||
useSansFont: getBodyClassToggle('sans')
|
||||
};
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
bottomHeightThreshold = document.documentElement.scrollHeight - 30;
|
||||
sections = document.querySelectorAll('div.section');
|
||||
settings = document.querySelector('div#settings.modal')
|
||||
settingsModal = document.querySelector('div#settings.modal')
|
||||
|
||||
const tables = document.querySelectorAll('.py-attribute-table[data-move-to-id]');
|
||||
tables.forEach(table => {
|
||||
@ -31,6 +50,21 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
// insert ourselves after the element
|
||||
parent.insertBefore(table, element.nextSibling);
|
||||
});
|
||||
|
||||
Object.entries(settings).forEach(([name, setter]) => {
|
||||
let value = JSON.parse(localStorage.getItem(name));
|
||||
|
||||
try {
|
||||
setter(value);
|
||||
let element = document.querySelector(`input[name=${name}]`);
|
||||
if (element) {
|
||||
element.checked = value === true;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Failed to apply setting "${name}" With value:`, value);
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
window.addEventListener('scroll', () => {
|
||||
|
Reference in New Issue
Block a user