Add if replace was used when sending navigation events (#2970)

This commit is contained in:
Paulus Schoutsen 2019-03-18 19:42:27 -07:00 committed by GitHub
parent dc16abd637
commit 40025d44c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 4 deletions

View File

@ -1,5 +1,14 @@
import { fireEvent } from "./dom/fire_event";
declare global {
// for fire event
interface HASSDomEvents {
"location-changed": {
replace: boolean;
};
}
}
export const navigate = (
_node: any,
path: string,
@ -18,5 +27,7 @@ export const navigate = (
history.pushState(null, "", path);
}
}
fireEvent(window, "location-changed");
fireEvent(window, "location-changed", {
replace,
});
};

View File

@ -56,8 +56,11 @@ function initialize(panel, properties) {
const forwardEvent = (ev) =>
window.parent.customPanel.fire(ev.type, ev.detail);
root.addEventListener("hass-toggle-menu", forwardEvent);
window.addEventListener("location-changed", () =>
window.parent.customPanel.navigate(window.location.pathname)
window.addEventListener("location-changed", (ev) =>
window.parent.customPanel.navigate(
window.location.pathname,
ev.detail ? ev.detail.replace : false
)
);
setProperties(Object.assign({ panel }, properties));
document.body.appendChild(root);

View File

@ -25,7 +25,6 @@ declare global {
"iron-resize": undefined;
"config-refresh": undefined;
"ha-refresh-cloud-status": undefined;
"location-changed": undefined;
"hass-notification": {
message: string;
};