From 613cf932b5b5af981a85f95d2036a660e2736710 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 16 Aug 2023 14:56:44 +0200 Subject: [PATCH] Delay showing connection message (#17595) --- src/state/disconnect-toast-mixin.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/state/disconnect-toast-mixin.ts b/src/state/disconnect-toast-mixin.ts index bf5590ee29..c74773c913 100644 --- a/src/state/disconnect-toast-mixin.ts +++ b/src/state/disconnect-toast-mixin.ts @@ -17,6 +17,8 @@ export default >(superClass: T) => class extends superClass { private _subscribedBootstrapIntegrations?: Promise; + private _disconnectedTimeout?: number; + protected firstUpdated(changedProps) { super.firstUpdated(changedProps); // Need to load in advance because when disconnected, can't dynamically load code. @@ -65,6 +67,11 @@ export default >(superClass: T) => protected hassReconnected() { super.hassReconnected(); + if (this._disconnectedTimeout) { + clearTimeout(this._disconnectedTimeout); + this._disconnectedTimeout = undefined; + return; + } showToast(this, { message: "", duration: 1, @@ -74,11 +81,14 @@ export default >(superClass: T) => protected hassDisconnected() { super.hassDisconnected(); - showToast(this, { - message: this.hass!.localize("ui.notification_toast.connection_lost"), - duration: 0, - dismissable: false, - }); + this._disconnectedTimeout = window.setTimeout(() => { + this._disconnectedTimeout = undefined; + showToast(this, { + message: this.hass!.localize("ui.notification_toast.connection_lost"), + duration: 0, + dismissable: false, + }); + }, 1000); } private _handleMessage(message: BootstrapIntegrationsTimings): void {