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

View File

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