mirror of
https://github.com/home-assistant/frontend.git
synced 2025-11-14 05:20:31 +00:00
Save default panel in user data
This commit is contained in:
@@ -14,6 +14,7 @@ declare global {
|
||||
interface FrontendUserData {
|
||||
core: CoreFrontendUserData;
|
||||
sidebar: SidebarFrontendUserData;
|
||||
default_panel: string;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ import { translationMetadata } from "../resources/translations-metadata";
|
||||
import type { Constructor, HomeAssistant, ServiceCallResponse } from "../types";
|
||||
import { getLocalLanguage } from "../util/common-translation";
|
||||
import { fetchWithAuth } from "../util/fetch-with-auth";
|
||||
import { getState } from "../util/ha-pref-storage";
|
||||
import { getState, storeState } from "../util/ha-pref-storage";
|
||||
import hassCallApi, { hassCallApiRaw } from "../util/hass-call-api";
|
||||
import type { HassBaseEl } from "./hass-base-mixin";
|
||||
import { computeStateName } from "../common/entity/compute_state_name";
|
||||
@@ -285,6 +285,14 @@ export const connectionMixin = <T extends Constructor<HassBaseEl>>(
|
||||
subscribeFrontendUserData(conn, "core", ({ value: userData }) => {
|
||||
this._updateHass({ userData });
|
||||
});
|
||||
subscribeFrontendUserData(
|
||||
conn,
|
||||
"default_panel",
|
||||
({ value: defaultPanel }) => {
|
||||
this._updateHass({ defaultPanel: defaultPanel || DEFAULT_PANEL });
|
||||
storeState(this.hass!);
|
||||
}
|
||||
);
|
||||
|
||||
clearInterval(this.__backendPingInterval);
|
||||
this.__backendPingInterval = setInterval(() => {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { HASSDomEvent } from "../common/dom/fire_event";
|
||||
import { saveFrontendUserData } from "../data/frontend";
|
||||
import type { Constructor, HomeAssistant } from "../types";
|
||||
import { storeState } from "../util/ha-pref-storage";
|
||||
import type { HassBaseEl } from "./hass-base-mixin";
|
||||
@@ -33,8 +34,19 @@ export default <T extends Constructor<HassBaseEl>>(superClass: T) =>
|
||||
storeState(this.hass!);
|
||||
});
|
||||
this.addEventListener("hass-default-panel", (ev) => {
|
||||
this._updateHass({ defaultPanel: ev.detail.defaultPanel });
|
||||
const defaultPanel = ev.detail.defaultPanel;
|
||||
this._updateHass({ defaultPanel });
|
||||
storeState(this.hass!);
|
||||
try {
|
||||
saveFrontendUserData(
|
||||
this.hass!.connection,
|
||||
"default_panel",
|
||||
defaultPanel
|
||||
);
|
||||
} catch (err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error("Failed to save default panel", err);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user