-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remember hidden detailed energy device statistics #21406
Remember hidden detailed energy device statistics #21406
Conversation
WalkthroughWalkthroughThe changes introduce a storage decorator for the Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant HuiEnergyDevicesDetailGraphCard
participant StorageManager
User ->> HuiEnergyDevicesDetailGraphCard: Hide Dataset
HuiEnergyDevicesDetailGraphCard ->> StorageManager: Update _hiddenStats
StorageManager -->> HuiEnergyDevicesDetailGraphCard: Persist Change
HuiEnergyDevicesDetailGraphCard -->> User: Update Visuals
User ->> HuiEnergyDevicesDetailGraphCard: Unhide Dataset
HuiEnergyDevicesDetailGraphCard ->> StorageManager: Update _hiddenStats
StorageManager -->> HuiEnergyDevicesDetailGraphCard: Persist Change
HuiEnergyDevicesDetailGraphCard -->> User: Update Visuals
Recent review detailsConfiguration used: CodeRabbit UI Files selected for processing (1)
Additional comments not posted (4)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
this._hiddenStats = [ | ||
...this._hiddenStats, | ||
this._data!.prefs.device_consumption[ev.detail.index].stat_consumption, | ||
]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensure no duplicates in _hiddenStats
.
The method _datasetHidden
currently adds statistics directly to _hiddenStats
. Consider checking for duplicates before adding to prevent the same stat from being hidden multiple times.
- this._hiddenStats = [...this._hiddenStats, this._data!.prefs.device_consumption[ev.detail.index].stat_consumption];
+ if (!this._hiddenStats.includes(this._data!.prefs.device_consumption[ev.detail.index].stat_consumption)) {
+ this._hiddenStats = [...this._hiddenStats, this._data!.prefs.device_consumption[ev.detail.index].stat_consumption];
+ }
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
this._hiddenStats = [ | |
...this._hiddenStats, | |
this._data!.prefs.device_consumption[ev.detail.index].stat_consumption, | |
]; | |
if (!this._hiddenStats.includes(this._data!.prefs.device_consumption[ev.detail.index].stat_consumption)) { | |
this._hiddenStats = [ | |
...this._hiddenStats, | |
this._data!.prefs.device_consumption[ev.detail.index].stat_consumption, | |
]; | |
} |
@storage({ | ||
key: "energy-devices-hidden-stats", | ||
state: true, | ||
subscribe: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
subscribe means that it will change in all browser tabs if it is changed in 1 tab, is that really what we want here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, does not really make sense here
Proposed change
If the statistics of an individual device was hidden on the energy dashboard, this filter is currently reset when the page is reloaded.
This PR now stores the hidden statistics in the local storage to survive a page reload.
Bildschirmaufnahme.2024-07-16.um.08.19.45.mov
Type of change
Example configuration
Additional information
Checklist
If user exposed functionality or configuration variables are added/changed:
Summary by CodeRabbit