diff --git a/demo/src/stubs/frontend.ts b/demo/src/stubs/frontend.ts index c4717bbbbe..9cdfadaff6 100644 --- a/demo/src/stubs/frontend.ts +++ b/demo/src/stubs/frontend.ts @@ -1,14 +1,12 @@ import type { MockHomeAssistant } from "../../../src/fake_data/provide_hass"; -let changeFunction; +let sidebarChangeCallback; export const mockFrontend = (hass: MockHomeAssistant) => { - hass.mockWS("frontend/get_user_data", () => ({ - value: null, - })); + hass.mockWS("frontend/get_user_data", () => ({ value: null })); hass.mockWS("frontend/set_user_data", ({ key, value }) => { if (key === "sidebar") { - changeFunction?.({ + sidebarChangeCallback?.({ value: { panelOrder: value.panelOrder || [], hiddenPanels: value.hiddenPanels || [], @@ -16,14 +14,11 @@ export const mockFrontend = (hass: MockHomeAssistant) => { }); } }); - hass.mockWS("frontend/subscribe_user_data", (_msg, _hass, onChange) => { - changeFunction = onChange; - onChange?.({ - value: { - panelOrder: [], - hiddenPanels: [], - }, - }); + hass.mockWS("frontend/subscribe_user_data", (msg, _hass, onChange) => { + if (msg.key === "sidebar") { + sidebarChangeCallback = onChange; + } + onChange?.({ value: null }); // eslint-disable-next-line @typescript-eslint/no-empty-function return () => {}; }); @@ -48,4 +43,5 @@ export const mockFrontend = (hass: MockHomeAssistant) => { return () => {}; }); hass.mockWS("repairs/list_issues", () => ({ issues: [] })); + hass.mockWS("frontend/get_themes", (_msg, currentHass) => currentHass.themes); }; diff --git a/demo/src/stubs/lovelace.ts b/demo/src/stubs/lovelace.ts index e4544a10ef..06d6871450 100644 --- a/demo/src/stubs/lovelace.ts +++ b/demo/src/stubs/lovelace.ts @@ -29,6 +29,7 @@ export const mockLovelace = ( hass.mockWS("lovelace/config/save", () => Promise.resolve()); hass.mockWS("lovelace/resources", () => Promise.resolve([])); + hass.mockWS("lovelace/dashboards/list", () => Promise.resolve([])); }; customElements.whenDefined("hui-root").then(() => { diff --git a/src/fake_data/demo_panels.ts b/src/fake_data/demo_panels.ts index a48754f4d0..d9d313d7a9 100644 --- a/src/fake_data/demo_panels.ts +++ b/src/fake_data/demo_panels.ts @@ -3,8 +3,8 @@ import type { Panels } from "../types"; export const demoPanels: Panels = { lovelace: { component_name: "lovelace", - icon: null, - title: null, + icon: "mdi:view-dashboard", + title: "demo", config: { mode: "storage" }, url_path: "lovelace", }, diff --git a/src/fake_data/provide_hass.ts b/src/fake_data/provide_hass.ts index 53c117b6c2..200729e3fa 100644 --- a/src/fake_data/provide_hass.ts +++ b/src/fake_data/provide_hass.ts @@ -256,6 +256,10 @@ export const provideHass = ( darkMode: false, theme: "default", }, + selectedTheme: { + theme: "default", + dark: false, + }, panels: demoPanels, services: demoServices, user: { @@ -348,7 +352,7 @@ export const provideHass = ( mockTheme(theme) { invalidateThemeCache(); hass().updateHass({ - selectedTheme: { theme: theme ? "mock" : "default" }, + selectedTheme: { theme: theme ? "mock" : "default", dark: false }, themes: { ...hass().themes, themes: { @@ -361,7 +365,7 @@ export const provideHass = ( document.documentElement, themes, selectedTheme!.theme, - undefined, + { dark: false }, true ); }, diff --git a/src/translations/en.json b/src/translations/en.json index d4b4135290..211633018a 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -1,5 +1,6 @@ { "panel": { + "demo": "Demo", "apps": "Apps", "energy": "Energy", "calendar": "Calendar",