Don't display browser-player if it can't work.

This commit is contained in:
Thomas Lovén 2022-08-04 12:02:37 +00:00
parent e2bdad02f4
commit 8703964438
3 changed files with 85 additions and 50 deletions

File diff suppressed because one or more lines are too long

View File

@ -7,19 +7,19 @@ class BrowserPlayerEditor extends LitElement {
} }
} }
(async () => { // (async () => {
while (!window.browser_mod) { // while (!window.browser_mod) {
await new Promise((resolve) => setTimeout(resolve, 1000)); // await new Promise((resolve) => setTimeout(resolve, 1000));
} // }
await window.browser_mod.connectionPromise; // await window.browser_mod.connectionPromise;
if (!customElements.get("browser-player-editor")) { if (!customElements.get("browser-player-editor")) {
customElements.define("browser-player-editor", BrowserPlayerEditor); customElements.define("browser-player-editor", BrowserPlayerEditor);
window.customCards = window.customCards || []; window.customCards = window.customCards || [];
window.customCards.push({ window.customCards.push({
type: "browser-player", type: "browser-player",
name: "Browser Player", name: "Browser Player",
preview: true, preview: true,
}); });
} }
})(); // })();

View File

@ -7,6 +7,7 @@ import "./types";
class BrowserPlayer extends LitElement { class BrowserPlayer extends LitElement {
@property() hass; @property() hass;
@property({ attribute: "edit-mode", reflect: true }) editMode;
static getConfigElement() { static getConfigElement() {
return document.createElement("browser-player-editor"); return document.createElement("browser-player-editor");
@ -15,6 +16,17 @@ class BrowserPlayer extends LitElement {
return {}; return {};
} }
async connectedCallback() {
super.connectedCallback();
if (!window.browser_mod?.registered) {
if (this.parentElement.localName === "hui-card-preview") {
this.removeAttribute("hidden");
} else {
this.setAttribute("hidden", "");
}
}
}
async setConfig(config) { async setConfig(config) {
while (!window.browser_mod) { while (!window.browser_mod) {
await new Promise((resolve) => setTimeout(resolve, 1000)); await new Promise((resolve) => setTimeout(resolve, 1000));
@ -28,10 +40,10 @@ class BrowserPlayer extends LitElement {
"canplay", "canplay",
"loadeddata", "loadeddata",
]) ])
window.browser_mod._audio_player.addEventListener(event, () => window.browser_mod?._audio_player?.addEventListener(event, () =>
this.requestUpdate() this.requestUpdate()
); );
window.browser_mod._video_player.addEventListener(event, () => window.browser_mod?._video_player?.addEventListener(event, () =>
this.requestUpdate() this.requestUpdate()
); );
} }
@ -72,6 +84,13 @@ class BrowserPlayer extends LitElement {
window.setTimeout(() => this.requestUpdate(), 100); window.setTimeout(() => this.requestUpdate(), 100);
return html``; return html``;
} }
if (!window.browser_mod?.registered) {
return html`
<ha-card>
<ha-alert> This browser is not registered to Browser Mod. </ha-alert>
</ha-card>
`;
}
return html` return html`
<ha-card> <ha-card>
<div class="card-content"> <div class="card-content">
@ -116,6 +135,12 @@ class BrowserPlayer extends LitElement {
static get styles() { static get styles() {
return css` return css`
:host(["hidden"]) {
display: none;
}
:host([edit-mode="true"]) {
display: block !important;
}
paper-icon-button[highlight] { paper-icon-button[highlight] {
color: var(--accent-color); color: var(--accent-color);
} }
@ -143,12 +168,12 @@ class BrowserPlayer extends LitElement {
} }
} }
(async () => { // (async () => {
while (!window.browser_mod) { // while (!window.browser_mod) {
await new Promise((resolve) => setTimeout(resolve, 1000)); // await new Promise((resolve) => setTimeout(resolve, 1000));
} // }
await window.browser_mod.connectionPromise; // await window.browser_mod.connectionPromise;
if (!customElements.get("browser-player")) if (!customElements.get("browser-player"))
customElements.define("browser-player", BrowserPlayer); customElements.define("browser-player", BrowserPlayer);
})(); // })();