@@ -33,6 +33,7 @@ import { haStyle } from "../../../../src/resources/styles";
3333import type { HomeAssistant } from "../../../../src/types" ;
3434import { suggestAddonRestart } from "../../dialogs/suggestAddonRestart" ;
3535import { hassioStyle } from "../../resources/hassio-style" ;
36+ import type { Selector } from "../../../../src/data/selector" ;
3637
3738const 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