From 00dcecabb77dc764311d7cbdf24706904e14da26 Mon Sep 17 00:00:00 2001 From: Zack Barett Date: Thu, 26 May 2022 12:25:00 -0500 Subject: [PATCH] Set Error if entity is unavailable (#12791) --- .../media-player/ha-media-player-browse.ts | 22 +++++++++++++++++-- src/translations/en.json | 3 ++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/components/media-player/ha-media-player-browse.ts b/src/components/media-player/ha-media-player-browse.ts index 285ebcea54..23cacf1fc7 100644 --- a/src/components/media-player/ha-media-player-browse.ts +++ b/src/components/media-player/ha-media-player-browse.ts @@ -28,6 +28,7 @@ import { fireEvent } from "../../common/dom/fire_event"; import { computeRTLDirection } from "../../common/util/compute_rtl"; import { debounce } from "../../common/util/debounce"; import { getSignedPath } from "../../data/auth"; +import { UNAVAILABLE_STATES } from "../../data/entity"; import type { MediaPlayerItem } from "../../data/media-player"; import { browseMediaPlayer, @@ -45,6 +46,7 @@ import type { HomeAssistant } from "../../types"; import { brandsUrl, extractDomainFromBrandUrl } from "../../util/brands-url"; import { documentationUrl } from "../../util/documentation-url"; import "../entity/ha-entity-picker"; +import "../ha-alert"; import "../ha-button-menu"; import "../ha-card"; import "../ha-circular-progress"; @@ -246,6 +248,16 @@ export class HaMediaPlayerBrowse extends LitElement { ], replace: true, }); + } else if ( + err.code === "entity_not_found" && + UNAVAILABLE_STATES.includes(this.hass.states[this.entityId]?.state) + ) { + this._setError({ + message: this.hass.localize( + `ui.components.media-browser.media_player_unavailable` + ), + code: "entity_not_found", + }); } else { this._setError(err); } @@ -305,7 +317,11 @@ export class HaMediaPlayerBrowse extends LitElement { protected render(): TemplateResult { if (this._error) { return html` -
${this._renderError(this._error)}
+
+ + ${this._renderError(this._error)} + +
`; } @@ -420,7 +436,9 @@ export class HaMediaPlayerBrowse extends LitElement { this._error ? html`
- ${this._renderError(this._error)} + + ${this._renderError(this._error)} +
` : isTTSMediaSource(currentItem.media_content_id) diff --git a/src/translations/en.json b/src/translations/en.json index 8f58b29c64..76f334bfce 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -609,7 +609,8 @@ "tv_show": "TV Show", "url": "URL", "video": "Video" - } + }, + "media_player_unavailable": "The selected media player is unavailable." }, "calendar": { "my_calendars": "My Calendars",