mirror of
https://github.com/MasterAcnolo/Freedom-Loader.git
synced 2026-07-29 18:25:47 +02:00
67 lines
1.8 KiB
JavaScript
67 lines
1.8 KiB
JavaScript
const settingsPanel = document.getElementById("settings-panel");
|
|
const settingsModal = document.querySelector(".settings-modal");
|
|
|
|
const settingsButton = document.getElementById("settings-button");
|
|
|
|
let isOpen = false;
|
|
|
|
settingsButton.addEventListener("click", () => {
|
|
const isOpen = settingsPanel.style.display === "block";
|
|
settingsPanel.style.display = isOpen ? "none" : "block";
|
|
});
|
|
|
|
function closePanel() {
|
|
isOpen = false;
|
|
settingsPanel.style.display = "none";
|
|
}
|
|
|
|
|
|
async function loadSettings() {
|
|
const features = await window.electronAPI.getFeatures();
|
|
|
|
document.querySelectorAll(".settings-section input, .settings-section select").forEach(el => {
|
|
const key = el.dataset.key;
|
|
if (features[key] !== undefined) {
|
|
if (el.type === "checkbox") el.checked = features[key];
|
|
else if (el.tagName === "SELECT") el.value = features[key];
|
|
}
|
|
|
|
el.addEventListener("change", () => {
|
|
if (key === "theme") return;
|
|
let value = el.type === "checkbox" ? el.checked : el.value;
|
|
window.electronAPI.setFeature(key, value);
|
|
});
|
|
});
|
|
}
|
|
|
|
// Open The JSON
|
|
document.getElementById("open-json-btn").addEventListener("click", () => {
|
|
window.topbarAPI.openConfig();
|
|
});
|
|
|
|
// Open Theme Folder
|
|
document.getElementById("open-theme").addEventListener("click", () => {
|
|
window.topbarAPI.openTheme();
|
|
});
|
|
|
|
// Refresh Themes
|
|
document.getElementById("refresh-themes-btn").addEventListener("click", function() {
|
|
this.classList.add("spinning");
|
|
window.refreshThemes();
|
|
|
|
setTimeout(() => {
|
|
this.classList.remove("spinning");
|
|
}, 600);
|
|
});
|
|
|
|
|
|
/* clic sur l'overlay = fermer */
|
|
settingsPanel.addEventListener("click", closePanel);
|
|
|
|
/* clic dans la modal = stop propagation */
|
|
settingsModal.addEventListener("click", (e) => {
|
|
e.stopPropagation();
|
|
});
|
|
|
|
loadSettings();
|