From 84df2bd531983ed48448daff9835e73b6d5b5f86 Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Wed, 17 Jul 2019 20:32:23 +0200 Subject: [PATCH] Make sure slider type updates with changes to temperatures (#3374) --- .../lovelace/cards/hui-thermostat-card.ts | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/panels/lovelace/cards/hui-thermostat-card.ts b/src/panels/lovelace/cards/hui-thermostat-card.ts index abd6a98ab7..4049549649 100644 --- a/src/panels/lovelace/cards/hui-thermostat-card.ts +++ b/src/panels/lovelace/cards/hui-thermostat-card.ts @@ -204,10 +204,13 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard { !changedProps.has("_jQuery") && (!oldHass || oldHass.states[this._config.entity] !== stateObj) ) { - const [sliderValue, uiValue] = this._genSliderValue(stateObj); + const [sliderValue, uiValue, _sliderType] = this._genSliderValue( + stateObj + ); this._jQuery("#thermostat", this.shadowRoot).roundSlider({ value: sliderValue, + sliderType: _sliderType, }); this._updateSetTemp(uiValue); } @@ -250,13 +253,7 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard { this._roundSliderStyle = loaded.roundSliderStyle; this._jQuery = loaded.jQuery; - const _sliderType = - stateObj.attributes.target_temp_low && - stateObj.attributes.target_temp_high - ? "range" - : "min-range"; - - const [sliderValue, uiValue] = this._genSliderValue(stateObj); + const [sliderValue, uiValue, _sliderType] = this._genSliderValue(stateObj); this._jQuery("#thermostat", this.shadowRoot).roundSlider({ ...thermostatConfig, @@ -272,7 +269,10 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard { this._updateSetTemp(uiValue); } - private _genSliderValue(stateObj: ClimateEntity): [string | number, string] { + private _genSliderValue( + stateObj: ClimateEntity + ): [string | number, string, string] { + let sliderType: string; let sliderValue: string | number; let uiValue: string; @@ -280,6 +280,7 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard { stateObj.attributes.target_temp_low && stateObj.attributes.target_temp_high ) { + sliderType = "range"; sliderValue = `${stateObj.attributes.target_temp_low}, ${ stateObj.attributes.target_temp_high }`; @@ -291,6 +292,7 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard { false ); } else { + sliderType = "min-range"; sliderValue = stateObj.attributes.temperature; uiValue = stateObj.attributes.temperature !== null @@ -298,7 +300,7 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard { : ""; } - return [sliderValue, uiValue]; + return [sliderValue, uiValue, sliderType]; } private _updateSetTemp(value: string): void {