diff --git a/src/data/light.ts b/src/data/light.ts index 9ef41c284f..d9c68e5d44 100644 --- a/src/data/light.ts +++ b/src/data/light.ts @@ -8,6 +8,7 @@ export enum LightColorModes { ONOFF = "onoff", BRIGHTNESS = "brightness", COLOR_TEMP = "color_temp", + WHITE = "white", HS = "hs", XY = "xy", RGB = "rgb", diff --git a/src/dialogs/more-info/controls/more-info-light.ts b/src/dialogs/more-info/controls/more-info-light.ts index 3ac4d2e143..b232bc7c3c 100644 --- a/src/dialogs/more-info/controls/more-info-light.ts +++ b/src/dialogs/more-info/controls/more-info-light.ts @@ -9,6 +9,7 @@ import { TemplateResult, } from "lit"; import { customElement, property, state } from "lit/decorators"; +import memoizeOne from "memoize-one"; import { supportsFeature } from "../../../common/entity/supports-feature"; import "../../../components/ha-attributes"; import "../../../components/ha-button-toggle-group"; @@ -28,11 +29,6 @@ import { } from "../../../data/light"; import type { HomeAssistant } from "../../../types"; -const toggleButtons = [ - { label: "Color", value: "color" }, - { label: "Temperature", value: LightColorModes.COLOR_TEMP }, -]; - @customElement("more-info-light") class MoreInfoLight extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; @@ -59,7 +55,7 @@ class MoreInfoLight extends LitElement { @state() private _colorPickerColor?: [number, number, number]; - @state() private _mode?: "color" | LightColorModes.COLOR_TEMP; + @state() private _mode?: "color" | LightColorModes; protected render(): TemplateResult { if (!this.hass || !this.stateObj) { @@ -71,6 +67,11 @@ class MoreInfoLight extends LitElement { LightColorModes.COLOR_TEMP ); + const supportsWhite = lightSupportsColorMode( + this.stateObj, + LightColorModes.WHITE + ); + const supportsRgbww = lightSupportsColorMode( this.stateObj, LightColorModes.RGBWW @@ -101,16 +102,17 @@ class MoreInfoLight extends LitElement { ${this.stateObj.state === "on" ? html` ${supportsTemp || supportsColor ? html`