Remember hidden detailed energy device statistics (#21406)

* Remember hidden detailed energy device statistics

* Do not subscribe
This commit is contained in:
Jan-Philipp Benecke 2024-07-19 13:56:38 +02:00 committed by GitHub
parent 83e94d32e3
commit 1749725229
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -38,6 +38,7 @@ import { LovelaceCard } from "../../types";
import { EnergyDevicesDetailGraphCardConfig } from "../types"; import { EnergyDevicesDetailGraphCardConfig } from "../types";
import { hasConfigChanged } from "../../common/has-changed"; import { hasConfigChanged } from "../../common/has-changed";
import { getCommonOptions } from "./common/energy-chart-options"; import { getCommonOptions } from "./common/energy-chart-options";
import { storage } from "../../../../common/decorators/storage";
const UNIT = "kWh"; const UNIT = "kWh";
@ -64,7 +65,12 @@ export class HuiEnergyDevicesDetailGraphCard
@state() private _compareEnd?: Date; @state() private _compareEnd?: Date;
@state() private _hiddenStats = new Set<string>(); @storage({
key: "energy-devices-hidden-stats",
state: true,
subscribe: false,
})
private _hiddenStats: string[] = [];
protected hassSubscribeRequiredHostProps = ["_config"]; protected hassSubscribeRequiredHostProps = ["_config"];
@ -143,19 +149,18 @@ export class HuiEnergyDevicesDetailGraphCard
} }
private _datasetHidden(ev) { private _datasetHidden(ev) {
ev.stopPropagation(); this._hiddenStats = [
this._hiddenStats.add( ...this._hiddenStats,
this._data!.prefs.device_consumption[ev.detail.index].stat_consumption this._data!.prefs.device_consumption[ev.detail.index].stat_consumption,
); ];
this.requestUpdate("_hiddenStats");
} }
private _datasetUnhidden(ev) { private _datasetUnhidden(ev) {
ev.stopPropagation(); this._hiddenStats = this._hiddenStats.filter(
this._hiddenStats.delete( (stat) =>
this._data!.prefs.device_consumption[ev.detail.index].stat_consumption stat !==
this._data!.prefs.device_consumption[ev.detail.index].stat_consumption
); );
this.requestUpdate("_hiddenStats");
} }
private _createOptions = memoizeOne( private _createOptions = memoizeOne(
@ -341,7 +346,7 @@ export class HuiEnergyDevicesDetailGraphCard
statisticsMetaData[source.stat_consumption] statisticsMetaData[source.stat_consumption]
), ),
hidden: hidden:
this._hiddenStats.has(source.stat_consumption) || itemExceedsMax, this._hiddenStats.includes(source.stat_consumption) || itemExceedsMax,
borderColor: compare ? color + "7F" : color, borderColor: compare ? color + "7F" : color,
backgroundColor: compare ? color + "32" : color + "7F", backgroundColor: compare ? color + "32" : color + "7F",
data: consumptionData, data: consumptionData,