diff options
Diffstat (limited to 'src/actions')
-rw-r--r-- | src/actions/index.js | 8 | ||||
-rw-r--r-- | src/actions/operation.js | 27 |
2 files changed, 27 insertions, 8 deletions
diff --git a/src/actions/index.js b/src/actions/index.js index 63d5f6f..ae29238 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -7,14 +7,6 @@ export default { // Background commands BACKGROUND_REQUEST_COMPLETIONS: 'vimvixen.background.request.completions', - TABS_CLOSE: 'tabs.close', - TABS_REOPEN: 'tabs.reopen', - TABS_PREV: 'tabs.prev', - TABS_NEXT: 'tabs.next', - TABS_RELOAD: 'tabs.reload', - ZOOM_IN: 'zoom.in', - ZOOM_OUT: 'zoom.out', - ZOOM_NEUTRAL: 'zoom.neutral', // content commands CMD_OPEN: 'cmd.open', diff --git a/src/actions/operation.js b/src/actions/operation.js new file mode 100644 index 0000000..4106076 --- /dev/null +++ b/src/actions/operation.js @@ -0,0 +1,27 @@ +import operations from '../operations'; +import * as tabs from '../background/tabs'; +import * as zooms from '../background/zooms'; + +export function exec(operation, sender) { + switch (operation.type) { + case operations.TABS_CLOSE: + return tabs.closeTab(sender.tab.id); + case operations.TABS_REOPEN: + return tabs.reopenTab(); + case operations.TABS_PREV: + return tabs.selectPrevTab(sender.tab.index, operation.count); + case operations.TABS_NEXT: + return tabs.selectNextTab(sender.tab.index, operation.count); + case operations.TABS_RELOAD: + return tabs.reload(sender.tab, operation.cache); + case operations.ZOOM_IN: + return zooms.zoomIn(); + case operations.ZOOM_OUT: + return zooms.zoomOut(); + case operations.ZOOM_NEUTRAL: + return zooms.neutral(); + default: + return Promise.resolve(); + } +} + |