Browse Source

Поправлен баг вычисления rootRoute

Book Pauk 5 years ago
parent
commit
d0891fb652
2 changed files with 16 additions and 7 deletions
  1. 13 4
      client/components/App.vue
  2. 3 3
      client/components/Reader/Reader.vue

+ 13 - 4
client/components/App.vue

@@ -90,6 +90,18 @@ class App extends Vue {
         this.uistate = this.$store.state.uistate;
         this.config = this.$store.state.config;
 
+        //root route
+        let cachedRoute = '';
+        let cachedPath = '';
+        this.$root.rootRoute = () => {
+            if (this.$route.path != cachedPath) {
+                cachedPath = this.$route.path;
+                const m = cachedPath.match(/^(\/[^/]*).*$/i);
+                cachedRoute = (m ? m[1] : this.$route.path);
+            }
+            return cachedRoute;
+        }
+
         // set-app-title
         this.$root.$on('set-app-title', this.setAppTitle);
 
@@ -178,10 +190,7 @@ class App extends Vue {
     }
 
     get rootRoute() {
-        const m = this.$route.path.match(/^(\/[^/]*).*$/i);
-        this.$root.rootRoute = (m ? m[1] : this.$route.path);
-
-        return this.$root.rootRoute;
+        return this.$root.rootRoute();
     }
 
     setAppTitle(title) {

+ 3 - 3
client/components/Reader/Reader.vue

@@ -302,8 +302,8 @@ class Reader extends Vue {
         (async() => {
             await bookManager.init(this.settings);
             bookManager.addEventListener(this.bookManagerEvent);
-            
-            if (this.$root.rootRoute == '/reader') {
+
+            if (this.$root.rootRoute() == '/reader') {
                 if (this.routeParamUrl) {
                     await this.loadBook({url: this.routeParamUrl, bookPos: this.routeParamPos, force: this.routeParamRefresh});
                 } else {
@@ -1086,7 +1086,7 @@ class Reader extends Vue {
     }
 
     keyHook(event) {
-        if (this.$root.rootRoute == '/reader') {
+        if (this.$root.rootRoute() == '/reader') {
             let handled = false;
             if (!handled && this.helpActive)
                 handled = this.$refs.helpPage.keyHook(event);