diff options
Diffstat (limited to 'src/content')
-rw-r--r-- | src/content/index.js | 60 | ||||
-rw-r--r-- | src/content/messages.js | 6 |
2 files changed, 25 insertions, 41 deletions
diff --git a/src/content/index.js b/src/content/index.js index b29118d..d380291 100644 --- a/src/content/index.js +++ b/src/content/index.js @@ -1,58 +1,41 @@ import './console-frame.scss'; import * as consoleFrames from './console-frames'; -import * as scrolls from 'content/scrolls'; -import * as navigates from 'content/navigates'; -import * as followActions from 'actions/follow'; +import * as settingActions from 'actions/setting'; import { createStore } from 'store'; import ContentInputComponent from 'components/content-input'; +import KeymapperComponent from 'components/keymapper'; import FollowComponent from 'components/follow'; import reducers from 'reducers'; -import operations from 'shared/operations'; import messages from './messages'; const store = createStore(reducers); const followComponent = new FollowComponent(window.document.body, store); +const contentInputComponent = + new ContentInputComponent(window.document.body, store); +const keymapperComponent = new KeymapperComponent(store); +contentInputComponent.onKey((key, ctrl) => { + return followComponent.key(key, ctrl); +}); +contentInputComponent.onKey((key, ctrl) => { + return keymapperComponent.key(key, ctrl); +}); store.subscribe(() => { try { followComponent.update(); + contentInputComponent.update(); } catch (e) { console.error(e); } }); -// eslint-disable-next-line no-unused-vars -const contentInputComponent = new ContentInputComponent(window); consoleFrames.initialize(window.document); -const execOperation = (operation) => { - switch (operation.type) { - case operations.SCROLL_LINES: - return scrolls.scrollLines(window, operation.count); - case operations.SCROLL_PAGES: - return scrolls.scrollPages(window, operation.count); - case operations.SCROLL_TOP: - return scrolls.scrollTop(window); - case operations.SCROLL_BOTTOM: - return scrolls.scrollBottom(window); - case operations.SCROLL_HOME: - return scrolls.scrollLeft(window); - case operations.SCROLL_END: - return scrolls.scrollRight(window); - case operations.FOLLOW_START: - return store.dispatch(followActions.enable(false)); - case operations.NAVIGATE_HISTORY_PREV: - return navigates.historyPrev(window); - case operations.NAVIGATE_HISTORY_NEXT: - return navigates.historyNext(window); - case operations.NAVIGATE_LINK_PREV: - return navigates.linkPrev(window); - case operations.NAVIGATE_LINK_NEXT: - return navigates.linkNext(window); - case operations.NAVIGATE_PARENT: - return navigates.parent(window); - case operations.NAVIGATE_ROOT: - return navigates.root(window); - } +const reloadSettings = () => { + return browser.runtime.sendMessage({ + type: messages.SETTINGS_QUERY, + }).then((settings) => { + store.dispatch(settingActions.set(settings)); + }); }; browser.runtime.onMessage.addListener((action) => { @@ -61,10 +44,11 @@ browser.runtime.onMessage.addListener((action) => { window.focus(); consoleFrames.blur(window.document); return Promise.resolve(); - case messages.CONTENT_OPERATION: - execOperation(action.operation); - return Promise.resolve(); + case messages.SETTINGS_CHANGED: + return reloadSettings(); default: return Promise.resolve(); } }); + +reloadSettings(); diff --git a/src/content/messages.js b/src/content/messages.js index 0e66fa0..138f0e0 100644 --- a/src/content/messages.js +++ b/src/content/messages.js @@ -1,5 +1,7 @@ export default { - CONTENT_OPERATION: 'content.operation', + SETTINGS_QUERY: 'settings.query', + + BACKGROUND_OPERATION: 'background.operation', CONSOLE_BLURRED: 'console.blured', CONSOLE_ENTERED: 'console.entered', @@ -8,8 +10,6 @@ export default { CONSOLE_SHOW_ERROR: 'console.show.error', CONSOLE_HIDE: 'console.hide', - KEYDOWN: 'keydown', - OPEN_URL: 'open.url', SETTINGS_RELOAD: 'settings.reload', |