Skip to content

Commit 59c949e

Browse files
committed
Extract _convertSchemaElementToSelector from _convertSchemaElement
1 parent fc7d64e commit 59c949e

File tree

1 file changed

+24
-37
lines changed

1 file changed

+24
-37
lines changed

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

Lines changed: 24 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import { haStyle } from "../../../../src/resources/styles";
3333
import type { HomeAssistant } from "../../../../src/types";
3434
import { suggestAddonRestart } from "../../dialogs/suggestAddonRestart";
3535
import { hassioStyle } from "../../resources/hassio-style";
36+
import type { Selector } from "../../../../src/data/selector";
3637

3738
const SUPPORTED_UI_TYPES = [
3839
"string",
@@ -103,63 +104,49 @@ class HassioAddonConfig extends LitElement {
103104
}
104105

105106
private _convertSchemaElement(entry: any): HaFormSchema {
106-
if (entry.type === "select") {
107+
const selector = this._convertSchemaElementToSelector(entry);
108+
if (selector) {
107109
return {
108110
name: entry.name,
109111
required: entry.required,
110-
selector: { select: { options: entry.options } },
112+
selector,
111113
};
112114
}
115+
return entry;
116+
}
117+
118+
private _convertSchemaElementToSelector(entry: any): Selector | null {
119+
if (entry.type === "select") {
120+
return { select: { options: entry.options } };
121+
}
113122
if (entry.type === "string") {
114123
return entry.multiple
115-
? {
116-
name: entry.name,
117-
required: entry.required,
118-
selector: {
119-
select: { options: [], multiple: true, custom_value: true },
120-
},
121-
}
124+
? { select: { options: [], multiple: true, custom_value: true } }
122125
: {
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-
},
126+
text: {
127+
type: entry.format
128+
? entry.format
129+
: MASKED_FIELDS.includes(entry.name)
130+
? "password"
131+
: "text",
133132
},
134133
};
135134
}
136135
if (entry.type === "boolean") {
137-
return {
138-
name: entry.name,
139-
required: entry.required,
140-
selector: { boolean: {} },
141-
};
136+
return { boolean: {} };
142137
}
143138
if (entry.type === "schema") {
144-
return {
145-
name: entry.name,
146-
required: entry.required,
147-
selector: { object: {} },
148-
};
139+
return { object: {} };
149140
}
150141
if (entry.type === "float" || entry.type === "integer") {
151142
return {
152-
name: entry.name,
153-
required: entry.required,
154-
selector: {
155-
number: {
156-
mode: "box",
157-
step: entry.type === "float" ? "any" : undefined,
158-
},
143+
number: {
144+
mode: "box",
145+
step: entry.type === "float" ? "any" : undefined,
159146
},
160147
};
161148
}
162-
return entry;
149+
return null;
163150
}
164151

165152
private _filteredSchema = memoizeOne(

0 commit comments

Comments
 (0)