import { html } from "/assets/vendor/arrow-core.js" import { upperFirst } from "/assets/js/utils.js" import { Navigate } from "/assets/components/router.js" export function SettingsView({ params }) { const state = { selectedSection: params.section, selectedSubsection: params.subsection, settings: "[]", heading: params.section, } getSettings().then((results) => { if (state.selectedSubsection) { const setting = results.find((item) => item.key === state.selectedSubsection) ?? {} if (!setting.subsettings || Object.keys(setting.subsettings).length === 0) { return Navigate(`/settings/${state.selectedSection}`) } state.heading = setting.key state.settings = JSON.stringify([ { ...setting, description: setting.description + "

Disabling this will make settings below irrelevant", subsettings: undefined, expanded: true, }, ...Object.entries(setting.subsettings).map(([key, value]) => ({ key, section: state.selectedSection, ...value, })), ]) return } state.settings = JSON.stringify(results) }) return html`

${() => upperFirst(state.heading)} settings

${() => { const settings = JSON.parse(state.settings).filter( (el) => el.section === state.selectedSection ) return html`
${SettingsList(settings)}
` }}
` } function SettingsList(settings) { return settings.map((setting) => html`
${setting.key}
`) }