import { settings } from "../settings.js"; import { createWindowElement } from "./utils/window.js"; const settingsRows = [ { name: "Disable notifications", description: "Hide notification badges in the toolbar.", input: "checkbox", settingKey: "disableAppNotification", changeEvent: (evt) => { if (evt.currentTarget instanceof HTMLInputElement) { const devToolbar = document.querySelector("astro-dev-toolbar"); if (devToolbar) { devToolbar.setNotificationVisible(!evt.currentTarget.checked); } settings.updateSetting("disableAppNotification", evt.currentTarget.checked); const action = evt.currentTarget.checked ? "disabled" : "enabled"; settings.logger.verboseLog(`App notification badges ${action}`); } } }, { name: "Verbose logging", description: "Logs dev toolbar events in the browser console.", input: "checkbox", settingKey: "verbose", changeEvent: (evt) => { if (evt.currentTarget instanceof HTMLInputElement) { settings.updateSetting("verbose", evt.currentTarget.checked); const action = evt.currentTarget.checked ? "enabled" : "disabled"; settings.logger.verboseLog(`Verbose logging ${action}`); } } } ]; var settings_default = { id: "astro:settings", name: "Settings", icon: "gear", init(canvas) { createSettingsWindow(); document.addEventListener("astro:after-swap", createSettingsWindow); function createSettingsWindow() { const windowElement = createWindowElement( `

Settings


` ); const general = windowElement.querySelector("#general"); for (const settingsRow of settingsRows) { general.after(document.createElement("hr")); general.after(getElementForSettingAsString(settingsRow)); } canvas.append(windowElement); function getElementForSettingAsString(setting) { const label = document.createElement("label"); label.classList.add("setting-row"); const section = document.createElement("section"); section.innerHTML = `

${setting.name}

${setting.description}`; label.append(section); switch (setting.input) { case "checkbox": { const astroToggle = document.createElement("astro-dev-toolbar-toggle"); astroToggle.input.addEventListener("change", setting.changeEvent); astroToggle.input.checked = settings.config[setting.settingKey]; label.append(astroToggle); } } return label; } } } }; export { settings_default as default };