Skip to content

Commit 86c20cc

Browse files
committed
Extract _convertSchemaElementToSelector from _convertSchemaElement
1 parent a0eaa68 commit 86c20cc

File tree

1 file changed

+23
-37
lines changed

1 file changed

+23
-37
lines changed

hassio/src/addon-view/config/hassio-addon-config.ts

Lines changed: 23 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -103,63 +103,49 @@ class HassioAddonConfig extends LitElement {
103103
}
104104

105105
private _convertSchemaElement(entry: any): HaFormSchema {
106-
if (entry.type === "select") {
106+
const selector = this._convertSchemaElementToSelector(entry);
107+
if (selector) {
107108
return {
108109
name: entry.name,
109110
required: entry.required,
110-
selector: { select: { options: entry.options } },
111+
selector,
111112
};
112113
}
114+
return entry;
115+
}
116+
117+
private _convertSchemaElementToSelector(entry: any): Selector | null {
118+
if (entry.type === "select") {
119+
return { select: { options: entry.options } };
120+
}
113121
if (entry.type === "string") {
114122
return entry.multiple
115-
? {
116-
name: entry.name,
117-
required: entry.required,
118-
selector: {
119-
select: { options: [], multiple: true, custom_value: true },
120-
},
121-
}
123+
? { select: { options: [], multiple: true, custom_value: true } }
122124
: {
123-
name: entry.name,
124-
required: entry.required,
125-
selector: {
126-
text: {
127-
type: entry.format
128-
? entry.format
129-
: MASKED_FIELDS.includes(entry.name)
130-
? "password"
131-
: "text",
132-
},
125+
text: {
126+
type: entry.format
127+
? entry.format
128+
: MASKED_FIELDS.includes(entry.name)
129+
? "password"
130+
: "text",
133131
},
134132
};
135133
}
136134
if (entry.type === "boolean") {
137-
return {
138-
name: entry.name,
139-
required: entry.required,
140-
selector: { boolean: {} },
141-
};
135+
return { boolean: {} };
142136
}
143137
if (entry.type === "schema") {
144-
return {
145-
name: entry.name,
146-
required: entry.required,
147-
selector: { object: {} },
148-
};
138+
return { object: {} };
149139
}
150140
if (entry.type === "float" || entry.type === "integer") {
151141
return {
152-
name: entry.name,
153-
required: entry.required,
154-
selector: {
155-
number: {
156-
mode: "box",
157-
step: entry.type === "float" ? "any" : undefined,
158-
},
142+
number: {
143+
mode: "box",
144+
step: entry.type === "float" ? "any" : undefined,
159145
},
160146
};
161147
}
162-
return entry;
148+
return null;
163149
}
164150

165151
private _filteredSchema = memoizeOne(

0 commit comments

Comments
 (0)