Bug fixes

This commit is contained in:
confused-Techie 2024-03-21 01:53:16 -07:00
parent 0c90076218
commit d03c25f6f0
3 changed files with 28 additions and 6 deletions

View File

@ -2,6 +2,7 @@ const { CompositeDisposable } = require("atom");
const _ = require("underscore-plus");
const BaseSettingValue = require("./base.js");
const elementForSetting = require("./elementForSetting.js");
const { getSettingTitle } = require("../rich-title.js");
module.exports =
class ElementSettingValue extends BaseSettingValue {
@ -11,7 +12,7 @@ class ElementSettingValue extends BaseSettingValue {
}
render() {
if (_.keys(value).length === 0) {
if (_.keys(this.value).length === 0) {
this.element = document.createDocumentFragment();
return this.element;
} else {

View File

@ -1,9 +1,13 @@
// Creates an HTML element for a given setting
const _ = require("underscore-plus");
const ArraySettingValue = require("./array.js");
const CheckboxSettingValue = require("./checkbox.js");
const ColorSettingValue = require("./color.js");
const ElementSettingValue = require("./element.js");
const EnumSettingValue = require("./enum.js");
const ArraySettingValue = require("./array.js");
const ObjectSettingValue = require("./object.js");
module.exports =
function elementForSetting(namespace, name, value, opts = {}) {
@ -52,12 +56,26 @@ function elementForSetting(namespace, name, value, opts = {}) {
} else if (_.isObject(value) || (schema && schema.type === 'object')) {
settingsClass = new ObjectSettingValue(namespace, name, value, opts);
} else {
settingClass = new ElementSettingValue(namespace, name, value, opts);
settingsClass = new ElementSettingValue(namespace, name, value, opts);
}
if (settingsClass === undefined) {
console.log(`Unknown SettingValue Class for: '${namespace}:${name}.${value}'`);
return controlGroup;
}
controls.appendChild(settingsClass.render());
opts.compositeDisposable.add(settingsClass.bindTooltips());
opts.compositeDisposable.add(settingsClass.bindInput());
let bindTooltips = settingsClass.bindTooltips();
if (bindTooltips) {
opts.compositeDisposable.add(bindTooltips);
}
let bindInput = settingsClass.bindInput();
if (bindInput) {
// Since these classes may return unexpected data we guard against it here
opts.compositeDisposable.add(bindInput);
}
return controlGroup;
}

View File

@ -1,4 +1,7 @@
const _ = require("underscore-plus");
const BaseSettingValue = require("./base.js");
const { getSettingTitle } = require("../rich-title.js");
const elementForSetting = require("./elementForSetting.js");
module.exports =
class ObjectSettingValue extends BaseSettingValue {
@ -34,7 +37,7 @@ class ObjectSettingValue extends BaseSettingValue {
const div = document.createElement("div");
div.classList.add("sub-section-body");
for (const key of this.opts.sortSettings(this.keyPath, this.value)) {
div.appendChild(elementForSetting(namespace, `${name}.${key}`, value[key], this.opts.compositeDisposable));
div.appendChild(elementForSetting(this.namespace, `${this.name}.${key}`, this.value[key], this.opts));
}
section.appendChild(div);