mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 01:06:35 +00:00
Add sidebar actions to external bus (#15999)
This commit is contained in:
parent
b0b7998757
commit
36c5d70597
@ -44,6 +44,22 @@ const handleExternalMessage = (
|
|||||||
success: true,
|
success: true,
|
||||||
result: null,
|
result: null,
|
||||||
});
|
});
|
||||||
|
} else if (msg.command === "sidebar/toggle") {
|
||||||
|
fireEvent(hassMainEl, "hass-toggle-menu");
|
||||||
|
bus.fireMessage({
|
||||||
|
id: msg.id,
|
||||||
|
type: "result",
|
||||||
|
success: true,
|
||||||
|
result: null,
|
||||||
|
});
|
||||||
|
} else if (msg.command === "sidebar/show") {
|
||||||
|
fireEvent(hassMainEl, "hass-toggle-menu", { open: true });
|
||||||
|
bus.fireMessage({
|
||||||
|
id: msg.id,
|
||||||
|
type: "result",
|
||||||
|
success: true,
|
||||||
|
result: null,
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -121,9 +121,23 @@ interface EMIncomingMessageShowNotifications {
|
|||||||
command: "notifications/show";
|
command: "notifications/show";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface EMIncomingMessageToggleSidebar {
|
||||||
|
id: number;
|
||||||
|
type: "command";
|
||||||
|
command: "sidebar/toggle";
|
||||||
|
}
|
||||||
|
|
||||||
|
interface EMIncomingMessageShowSidebar {
|
||||||
|
id: number;
|
||||||
|
type: "command";
|
||||||
|
command: "sidebar/show";
|
||||||
|
}
|
||||||
|
|
||||||
export type EMIncomingMessageCommands =
|
export type EMIncomingMessageCommands =
|
||||||
| EMIncomingMessageRestart
|
| EMIncomingMessageRestart
|
||||||
| EMIncomingMessageShowNotifications;
|
| EMIncomingMessageShowNotifications
|
||||||
|
| EMIncomingMessageToggleSidebar
|
||||||
|
| EMIncomingMessageShowSidebar;
|
||||||
|
|
||||||
type EMIncomingMessage =
|
type EMIncomingMessage =
|
||||||
| EMMessageResultSuccess
|
| EMMessageResultSuccess
|
||||||
|
@ -19,12 +19,13 @@ import "./partial-panel-resolver";
|
|||||||
declare global {
|
declare global {
|
||||||
// for fire event
|
// for fire event
|
||||||
interface HASSDomEvents {
|
interface HASSDomEvents {
|
||||||
"hass-toggle-menu": undefined;
|
"hass-toggle-menu": undefined | { open?: boolean };
|
||||||
"hass-edit-sidebar": EditSideBarEvent;
|
"hass-edit-sidebar": EditSideBarEvent;
|
||||||
"hass-show-notifications": undefined;
|
"hass-show-notifications": undefined;
|
||||||
}
|
}
|
||||||
interface HTMLElementEventMap {
|
interface HTMLElementEventMap {
|
||||||
"hass-edit-sidebar": HASSDomEvent<EditSideBarEvent>;
|
"hass-edit-sidebar": HASSDomEvent<EditSideBarEvent>;
|
||||||
|
"hass-toggle-menu": HASSDomEvent<HASSDomEvents["hass-toggle-menu"]>;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,7 +108,7 @@ export class HomeAssistantMain extends LitElement {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
this.addEventListener("hass-toggle-menu", () => {
|
this.addEventListener("hass-toggle-menu", (ev) => {
|
||||||
if (this._sidebarEditMode) {
|
if (this._sidebarEditMode) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -118,10 +119,16 @@ export class HomeAssistantMain extends LitElement {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this._sidebarNarrow) {
|
if (this._sidebarNarrow) {
|
||||||
this._drawerOpen = !this._drawerOpen;
|
this._drawerOpen = ev.detail?.open ?? !this._drawerOpen;
|
||||||
} else {
|
} else {
|
||||||
fireEvent(this, "hass-dock-sidebar", {
|
fireEvent(this, "hass-dock-sidebar", {
|
||||||
dock: this.hass.dockedSidebar === "auto" ? "docked" : "auto",
|
dock: ev.detail?.open
|
||||||
|
? "docked"
|
||||||
|
: ev.detail?.open === false
|
||||||
|
? "auto"
|
||||||
|
: this.hass.dockedSidebar === "auto"
|
||||||
|
? "docked"
|
||||||
|
: "auto",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user