From b5dfe6ac0aacecaf476f9a23b3bed0e67a22c587 Mon Sep 17 00:00:00 2001 From: xiaoshi <115949669+xiaoshi930@users.noreply.github.com> Date: Thu, 1 Jan 2026 15:44:59 +0800 Subject: [PATCH] Update xiaoshi-device-ha-info-button.js --- xiaoshi-device-ha-info-button.js | 144 +++++++++++-------------------- 1 file changed, 48 insertions(+), 96 deletions(-) diff --git a/xiaoshi-device-ha-info-button.js b/xiaoshi-device-ha-info-button.js index 2534c83..01c7873 100644 --- a/xiaoshi-device-ha-info-button.js +++ b/xiaoshi-device-ha-info-button.js @@ -416,7 +416,6 @@ class XiaoshiHaInfoButton extends LitElement { _offlineEntities: Array, _loading: Boolean, _refreshInterval: Number, - _dataLoaded: Boolean, //button新元素 theme: { type: String } }; } @@ -785,7 +784,6 @@ class XiaoshiHaInfoButton extends LitElement { this._offlineDevices = []; this._offlineEntities = []; this._loading = false; - this._dataLoaded = false; //button新元素 this._refreshInterval = null; this.theme = 'on'; } @@ -801,12 +799,12 @@ class XiaoshiHaInfoButton extends LitElement { // 设置主题属性 this.setAttribute('theme', this._evaluateTheme()); - + // 每300秒刷新一次数据,减少频繁刷新 this._refreshInterval = setInterval(() => { this._loadUpdateData(); this._loadOfflineDevices(); - }, 3000); + }, 300000); } _evaluateTheme() { @@ -983,11 +981,9 @@ class XiaoshiHaInfoButton extends LitElement { this._offlineDevices = offlineDevices; this._offlineEntities = offlineEntities; - this._dataLoaded = true; //button新元素 } catch (error) { console.error('加载离线设备失败:', error); this._offlineDevices = []; - this._dataLoaded = true; //button新元素 } this._loading = false; @@ -1219,7 +1215,7 @@ class XiaoshiHaInfoButton extends LitElement { const regex = new RegExp(`^${regexPattern}$`, 'i'); // 不区分大小写 return regex.test(str); } - async _loadUpdateData() { + _loadUpdateData() { if (!this.hass) return; this._loading = true; @@ -1544,8 +1540,6 @@ class XiaoshiHaInfoButton extends LitElement { return html`${backupElements}`; } - - /*button新元素 开始*/ _handleButtonClick() { const tapAction = this.config.tap_action; @@ -1795,7 +1789,7 @@ class XiaoshiHaInfoButton extends LitElement { const buttonBgColor = transparentBg ? 'transparent' : theme === 'on' ? 'rgb(255, 255, 255, 0.6)' : 'rgb(83, 83, 83, 0.6)'; // 检查是否需要自动隐藏(只有数据加载完成且数量为0时才考虑隐藏) - const shouldAutoHide = this._dataLoaded && autoHide && warningCount === 0; + const shouldAutoHide = autoHide && warningCount === 0; // 如果需要自动隐藏,返回空div if (shouldAutoHide) { @@ -1804,95 +1798,53 @@ class XiaoshiHaInfoButton extends LitElement { // 渲染按钮 let buttonHtml; - if (!this._dataLoaded) { - if (badgeMode) { - // 角标模式:只显示图标,数量为0时不显示角标 - buttonHtml = html` -