From 35194cf345527aae1f2fea18adecfaad2465e841 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 27 Oct 2018 10:56:03 +0200 Subject: [PATCH 01/67] Extract navigate mixin (#1865) * Extract navigate to function * Remove eventsmixin properly and side effects --- src/common/navigate.ts | 14 ++++++++++++++ src/mixins/navigate-mixin.js | 13 ++++--------- src/panels/config/dashboard/ha-config-dashboard.js | 2 +- src/panels/config/users/ha-config-users.js | 5 +++-- 4 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 src/common/navigate.ts diff --git a/src/common/navigate.ts b/src/common/navigate.ts new file mode 100644 index 0000000000..6c9675a246 --- /dev/null +++ b/src/common/navigate.ts @@ -0,0 +1,14 @@ +import { fireEvent } from "./dom/fire_event.js"; + +export const navigate = ( + node: HTMLElement, + path: string, + replace: boolean = false +) => { + if (replace) { + history.replaceState(null, "", path); + } else { + history.pushState(null, "", path); + } + fireEvent(node, "location-changed"); +}; diff --git a/src/mixins/navigate-mixin.js b/src/mixins/navigate-mixin.js index 17a55994c9..c00a502b00 100644 --- a/src/mixins/navigate-mixin.js +++ b/src/mixins/navigate-mixin.js @@ -1,5 +1,5 @@ import { dedupingMixin } from "@polymer/polymer/lib/utils/mixin.js"; -import EventsMixin from "./events-mixin"; +import { navigate } from "../common/navigate"; /* * @polymerMixin @@ -7,14 +7,9 @@ import EventsMixin from "./events-mixin"; */ export default dedupingMixin( (superClass) => - class extends EventsMixin(superClass) { - navigate(path, replace = false) { - if (replace) { - history.replaceState(null, null, path); - } else { - history.pushState(null, null, path); - } - this.fire("location-changed"); + class extends superClass { + navigate(...args) { + navigate(this, ...args); } } ); diff --git a/src/panels/config/dashboard/ha-config-dashboard.js b/src/panels/config/dashboard/ha-config-dashboard.js index 7b097e78d8..56da4e2fb8 100644 --- a/src/panels/config/dashboard/ha-config-dashboard.js +++ b/src/panels/config/dashboard/ha-config-dashboard.js @@ -52,7 +52,7 @@ class HaConfigDashboard extends NavigateMixin(LocalizeMixin(PolymerElement)) {