From d35a396ad203c51829589636909735adab42d431 Mon Sep 17 00:00:00 2001 From: Radhi Fadlillah Date: Tue, 28 May 2019 09:13:44 +0700 Subject: [PATCH] Make back and forward button works --- internal/view/index.html | 27 ++++++++++++- internal/view/js/page/home.js | 54 +++++++++++++++++++++++--- internal/view/login.html | 4 ++ internal/webserver/assets-prod.go | 64 +++++++++++++++---------------- 4 files changed, 110 insertions(+), 39 deletions(-) diff --git a/internal/view/index.html b/internal/view/index.html index 96cf5f2..0dc1804 100644 --- a/internal/view/index.html +++ b/internal/view/index.html @@ -24,7 +24,7 @@
- +
@@ -60,9 +60,17 @@ title: "Setting", icon: "fa-cog", page: "page-setting", - }] + }], + historyState: {}, }, methods: { + switchPage(page) { + var pageName = page.replace("page-", ""), + state = {activePage: page}; + + this.activePage = page; + history.pushState(state, page, `#${pageName}`); + }, logout() { this.showDialog({ title: "Log Out", @@ -89,6 +97,21 @@ } }); } + }, + mounted() { + // Prepare history state watcher + var stateWatcher = (e) => { + var state = e.state || {}; + this.activePage = state.activePage || "page-home"; + } + + window.addEventListener('popstate', stateWatcher); + this.$once('hook:beforeDestroy', function () { + window.removeEventListener('popstate', stateWatcher); + }) + + // Set initial URL + history.replaceState(null, "page-home", "#home"); } }) diff --git a/internal/view/js/page/home.js b/internal/view/js/page/home.js index 1f0f1a7..d6c1ee1 100644 --- a/internal/view/js/page/home.js +++ b/internal/view/js/page/home.js @@ -1,7 +1,7 @@ var template = `