fix config bugs
This commit is contained in:
@@ -68,12 +68,14 @@ class Config {
|
||||
}
|
||||
parsed = {
|
||||
...parsed ? parsed : {},
|
||||
activeAdapter: this.defaultPlugin.id
|
||||
activeAdapter: this.defaultPlugin.id,
|
||||
adapters: {}
|
||||
};
|
||||
parsed.adapters[this.defaultPlugin.id] = defaultConfig;
|
||||
parsed[theme] = "dark";
|
||||
await this.write(parsed);
|
||||
} else {
|
||||
parsed.adapterConfig = this._resolveDefaults(parsed.adapterConfig);
|
||||
parsed.adapters = this._resolveDefaults(parsed.adapters);
|
||||
}
|
||||
return parsed;
|
||||
}
|
||||
@@ -82,7 +84,7 @@ class Config {
|
||||
await fs.mkdir(dir, { recursive: true });
|
||||
const resolvedConfig = {
|
||||
...configObject,
|
||||
adapterConfig: this._resolveDefaults(configObject.adapterConfig)
|
||||
adapters: this._resolveDefaults(configObject.adapters)
|
||||
};
|
||||
await fs.writeFile(
|
||||
this.configPath,
|
||||
|
||||
@@ -50,13 +50,16 @@ export default class Config {
|
||||
parsed = {
|
||||
...(parsed ? parsed : {}),
|
||||
activeAdapter: this.defaultPlugin.id,
|
||||
adapters: {},
|
||||
}
|
||||
parsed.adapters[this.defaultPlugin.id] = defaultConfig
|
||||
|
||||
parsed[theme] = 'dark'
|
||||
|
||||
await this.write(parsed)
|
||||
} else {
|
||||
// Ensure any "__DEFAULT_USER_DATA__" values are resolved on load
|
||||
parsed.adapterConfig = this._resolveDefaults(parsed.adapterConfig)
|
||||
parsed.adapters = this._resolveDefaults(parsed.adapters)
|
||||
}
|
||||
|
||||
return parsed
|
||||
@@ -71,7 +74,7 @@ export default class Config {
|
||||
// Resolve defaults before writing
|
||||
const resolvedConfig = {
|
||||
...configObject,
|
||||
adapterConfig: this._resolveDefaults(configObject.adapterConfig),
|
||||
adapters: this._resolveDefaults(configObject.adapters),
|
||||
}
|
||||
|
||||
await fs.writeFile(
|
||||
|
||||
@@ -57,6 +57,26 @@ const { plugins, setActivePlugin } = await usePlugins()
|
||||
const { config, ensureConfig } = useConfig()
|
||||
await ensureConfig()
|
||||
|
||||
const normalizeConfig = () => {
|
||||
if (!config.value.adapters) {
|
||||
config.value.adapters = {}
|
||||
}
|
||||
|
||||
for (const plugin of plugins.value) {
|
||||
if (!config.value.adapters[plugin.id]) {
|
||||
config.value.adapters[plugin.id] = {}
|
||||
}
|
||||
|
||||
for (const field of plugin.configSchema) {
|
||||
if (config.value.adapters[plugin.id][field.key] === undefined) {
|
||||
config.value.adapters[plugin.id][field.key] =
|
||||
field.default ?? ''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
normalizeConfig()
|
||||
|
||||
const selectedPluginId = ref(config.value.activeAdapter)
|
||||
const validationError = ref('')
|
||||
|
||||
@@ -117,11 +137,11 @@ const save = async () => {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin-right: 10px;
|
||||
border: 1px solid white;
|
||||
border: 1px solid var(--theme-fg);
|
||||
cursor: pointer;
|
||||
|
||||
&:checked {
|
||||
background-color: white;
|
||||
background-color: var(--theme-fg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user