aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mmm/mmmfs/browser.moon11
1 files changed, 9 insertions, 2 deletions
diff --git a/mmm/mmmfs/browser.moon b/mmm/mmmfs/browser.moon
index 370c039..6bbd5fd 100644
--- a/mmm/mmmfs/browser.moon
+++ b/mmm/mmmfs/browser.moon
@@ -34,8 +34,15 @@ class Browser
-- update URL bar
if MODE == 'CLIENT'
@path\subscribe (path) ->
- path ..= '/' unless '/' == path\sub -1
- window.history\pushState nil, '', path
+ return if @skip
+ vis_path = path .. (if '/' == path\sub -1 then '' else '/')
+ window.history\pushState path, '', vis_path
+
+ window.onpopstate = (_, event) ->
+ if event.state
+ @skip = true
+ @path\set event.state
+ @skip = nil
-- active fileder
-- (re)set every time @path changes