Compare commits

...

1 Commits

Author SHA1 Message Date
Bram Kragten
a548d13931 Allow partial open of sidebar 2023-04-01 18:46:52 +02:00
4 changed files with 15 additions and 2 deletions

View File

@@ -11,6 +11,9 @@ export class HaDrawer extends DrawerBase {
.mdc-drawer {
top: 0;
}
.mdc-drawer--modal.mdc-drawer--open {
left: min(0px, var(--drawer-modal-left-offset));
}
`,
];
}

View File

@@ -53,7 +53,10 @@ const handleExternalMessage = (
result: null,
});
} else if (msg.command === "sidebar/show") {
fireEvent(hassMainEl, "hass-toggle-menu", { open: true });
fireEvent(hassMainEl, "hass-toggle-menu", {
open: true,
screenPercentage: msg.data?.screenPercentage,
});
bus.fireMessage({
id: msg.id,
type: "result",

View File

@@ -131,6 +131,7 @@ interface EMIncomingMessageShowSidebar {
id: number;
type: "command";
command: "sidebar/show";
data?: { screenPercentage: number };
}
export type EMIncomingMessageCommands =

View File

@@ -19,7 +19,9 @@ import "./partial-panel-resolver";
declare global {
// for fire event
interface HASSDomEvents {
"hass-toggle-menu": undefined | { open?: boolean };
"hass-toggle-menu":
| undefined
| { open?: boolean; screenPercentage?: number };
"hass-edit-sidebar": EditSideBarEvent;
"hass-show-notifications": undefined;
}
@@ -120,6 +122,10 @@ export class HomeAssistantMain extends LitElement {
}
if (this._sidebarNarrow) {
this._drawerOpen = ev.detail?.open ?? !this._drawerOpen;
const offset = ev.detail?.screenPercentage
? -256 + screen.width * (ev.detail.screenPercentage / 100)
: 0;
this.style.setProperty("--drawer-modal-left-offset", `${offset}px`);
} else {
fireEvent(this, "hass-dock-sidebar", {
dock: ev.detail?.open