From f461825a5928a27a7722af6b7dcda0396e9939de Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Tue, 6 Sep 2022 11:48:13 +0200 Subject: [PATCH] Fix icon picker in dialog (#13616) --- src/components/ha-icon-picker.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/ha-icon-picker.ts b/src/components/ha-icon-picker.ts index 657953e816..3f43d497e0 100644 --- a/src/components/ha-icon-picker.ts +++ b/src/components/ha-icon-picker.ts @@ -13,7 +13,8 @@ type IconItem = { icon: string; keywords: string[]; }; -let iconItems: IconItem[] = []; +let iconItems: IconItem[] = [{ icon: "", keywords: [] }]; +let iconLoaded = false; // eslint-disable-next-line lit/prefer-static-styles const rowRenderer: ComboBoxLitRenderer = (item) => html`) { this._opened = ev.detail.value; - if (this._opened && !iconItems.length) { + if (this._opened && !iconLoaded) { const iconList = await import("../../build/mdi/iconList.json"); iconItems = iconList.default.map((icon) => ({ icon: `mdi:${icon.name}`, keywords: icon.keywords, })); + iconLoaded = true; - (this.comboBox as any).filteredItems = iconItems; + this.comboBox.filteredItems = iconItems; Object.keys(customIcons).forEach((iconSet) => { this._loadCustomIconItems(iconSet); @@ -116,7 +118,7 @@ export class HaIconPicker extends LitElement { keywords: icon.keywords ?? [], })); iconItems.push(...customIconItems); - (this.comboBox as any).filteredItems = iconItems; + this.comboBox.filteredItems = iconItems; } catch (e) { // eslint-disable-next-line console.warn(`Unable to load icon list for ${iconsetPrefix} iconset`); @@ -165,14 +167,12 @@ export class HaIconPicker extends LitElement { filteredItems.push(...filteredItemsByKeywords); if (filteredItems.length > 0) { - (this.comboBox as any).filteredItems = filteredItems; + this.comboBox.filteredItems = filteredItems; } else { - (this.comboBox as any).filteredItems = [ - { icon: filterString, keywords: [] }, - ]; + this.comboBox.filteredItems = [{ icon: filterString, keywords: [] }]; } } else { - (this.comboBox as any).filteredItems = iconItems; + this.comboBox.filteredItems = iconItems; } }