hass-browser_mod/js/browser.js

56 lines
1.6 KiB
JavaScript

import { fireEvent } from "card-tools/src/event";
export const BrowserModBrowserMixin = (C) =>
class extends C {
constructor() {
super();
document.addEventListener("visibilitychange", () => this.sensor_update());
window.addEventListener("location-changed", () => this.sensor_update());
window.setInterval(() => this.sensor_update(), 10000);
}
sensor_update() {
const update = async () => {
const battery = navigator.getBattery
? await navigator.getBattery()
: undefined;
this.sendUpdate({
browser: {
path: window.location.pathname,
visibility: document.visibilityState,
userAgent: navigator.userAgent,
currentUser: this._hass && this._hass.user && this._hass.user.name,
fullyKiosk: this.isFully,
width: window.innerWidth,
height: window.innerHeight,
battery_level: this.isFully
? window.fully.getBatteryLevel()
: battery
? battery.level * 100
: undefined,
charging: this.isFully
? window.fully.isPlugged()
: battery
? battery.charging
: undefined,
darkMode:
this._hass && this._hass.themes && this._hass.themes.darkMode,
userData: this._hass && this._hass.user,
},
});
};
update();
}
do_navigate(path) {
if (!path) return;
history.pushState(null, "", path);
fireEvent(
"location-changed",
{},
document.querySelector("home-assistant")
);
}
};