Browse Source

Рефакторинг

Book Pauk 5 năm trước cách đây
mục cha
commit
ba85c54d7c
2 tập tin đã thay đổi với 64 bổ sung59 xóa
  1. 62 57
      client/components/Reader/Reader.vue
  2. 2 2
      client/store/modules/reader.js

+ 62 - 57
client/components/Reader/Reader.vue

@@ -1102,6 +1102,67 @@ class Reader extends Vue {
         }
     }
 
+    doAction(opts) {
+        let result = false;
+        let {action = '', event = false} = opts;
+
+        if (action == 'loader') {
+            this.loaderToggle();
+            result = true;
+        }
+
+        if (this.activePage == 'TextPage') {
+            result = true;
+            switch (action) {
+                case 'help':
+                    this.helpToggle();
+                    break;
+                case 'settings':
+                    this.settingsToggle();
+                    break;
+                case 'undoAction':
+                    this.undoAction();
+                    break;
+                case 'redoAction':
+                    this.redoAction();
+                    break;
+                case 'fullScreen':
+                    this.fullScreenToggle();
+                    break;
+                case 'scrolling':
+                    this.scrollingToggle();
+                    break;
+                case 'setPosition':
+                    this.setPositionToggle();
+                    break;
+                case 'search':
+                    this.searchToggle();
+                    break;
+                case 'copyText':
+                    this.copyTextToggle();
+                    break;
+                case 'refresh':
+                    this.refreshBook();
+                    break;
+                case 'offlineMode':
+                    this.offlineModeToggle();
+                    break;
+                case 'recentBooks':
+                    this.recentBooksToggle();
+                    break;
+                default:
+                    result = false;
+                    break;
+            }
+        }
+
+        if (result && event) {
+            event.preventDefault();
+            event.stopPropagation();
+        }
+        return result;
+    }
+
     keyHook(event) {
         let result = false;
         if (this.$root.rootRoute() == '/reader') {
@@ -1132,63 +1193,7 @@ class Reader extends Vue {
 
             if (!handled && event.type == 'keydown') {
                 const action = this.$root.readerActionByKeyEvent(event);
-                if (action == 'loader') {
-                    this.loaderToggle();
-                    result = true;
-                }
-
-                if (this.activePage == 'TextPage') {
-                    result = true;
-                    switch (action) {
-                        case 'help':
-                            this.helpToggle();
-                            event.preventDefault();
-                            event.stopPropagation();
-                            break;
-                        case 'settings':
-                            this.settingsToggle();
-                            break;
-                        case 'undoAction':
-                            this.undoAction();
-                            break;
-                        case 'redoAction':
-                            this.redoAction();
-                            break;
-                        case 'fullScreen':
-                            this.fullScreenToggle();
-                            break;
-                        case 'scrolling':
-                            this.scrollingToggle();
-                            break;
-                        case 'setPosition':
-                            this.setPositionToggle();
-                            break;
-                        case 'search':
-                            this.searchToggle();
-                            event.preventDefault();
-                            event.stopPropagation();
-                            break;
-                        case 'copyText':
-                            this.copyTextToggle();
-                            event.preventDefault();
-                            event.stopPropagation();
-                            break;
-                        case 'refresh':
-                            this.refreshBook();
-                            break;
-                        case 'offlineMode':
-                            this.offlineModeToggle();
-                            break;
-                        case 'recentBooks':
-                            this.recentBooksToggle();
-                            event.preventDefault();
-                            event.stopPropagation();
-                            break;
-                        default:
-                            result = false;
-                            break;
-                    }
-                }
+                result = this.doAction({action, event});
             }
         }
         return result;

+ 2 - 2
client/store/modules/reader.js

@@ -44,8 +44,8 @@ const hotKeys = [
     {name: 'help', codes: ['F1', 'H']},
     {name: 'loader', codes: ['Escape']},
     {name: 'settings', codes: ['S']},
-    {name: 'undoAction', codes: ['Ctrl+Z']},
-    {name: 'redoAction', codes: ['Ctrl+X']},
+    {name: 'undoAction', codes: ['Ctrl+BracketLeft']},
+    {name: 'redoAction', codes: ['Ctrl+BracketRight']},
     {name: 'fullScreen', codes: ['Enter', 'Backquote', 'F']},
     {name: 'scrolling', codes: ['Z']},
     {name: 'setPosition', codes: ['P']},