aboutsummaryrefslogtreecommitdiff
path: root/src/content/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/index.ts')
-rw-r--r--src/content/index.ts46
1 files changed, 40 insertions, 6 deletions
diff --git a/src/content/index.ts b/src/content/index.ts
index 4024b98..f983f9f 100644
--- a/src/content/index.ts
+++ b/src/content/index.ts
@@ -1,15 +1,20 @@
-import TopContentComponent from './components/top-content';
-import FrameContentComponent from './components/frame-content';
+// import TopContentComponent from './components/top-content';
+// import FrameContentComponent from './components/frame-content';
import consoleFrameStyle from './site-style';
-import { newStore } from './store';
+// import { newStore } from './store';
import MessageListener from './MessageListener';
import FindController from './controllers/FindController';
import * as messages from '../shared/messages';
+import InputDriver from './InputDriver';
+import KeymapController from './controllers/KeymapController';
+import AddonEnabledUseCase from './usecases/AddonEnabledUseCase';
+import SettingUseCase from './usecases/SettingUseCase';
+import * as blacklists from '../shared/blacklists';
-const store = newStore();
+// const store = newStore();
if (window.self === window.top) {
- new TopContentComponent(window, store); // eslint-disable-line no-new
+ // new TopContentComponent(window, store); // eslint-disable-line no-new
let findController = new FindController();
new MessageListener().onWebMessage((message: messages.Message) => {
@@ -24,9 +29,38 @@ if (window.self === window.top) {
return undefined;
});
} else {
- new FrameContentComponent(window, store); // eslint-disable-line no-new
+ // new FrameContentComponent(window, store); // eslint-disable-line no-new
}
+let keymapController = new KeymapController();
+let inputDriver = new InputDriver(document.body);
+// inputDriver.onKey(key => followSlaveController.pressKey(key));
+// inputDriver.onKey(key => markController.pressKey(key));
+inputDriver.onKey(key => keymapController.press(key));
+
let style = window.document.createElement('style');
style.textContent = consoleFrameStyle;
window.document.head.appendChild(style);
+
+// TODO move the following to a class
+const reloadSettings = async() => {
+ let addonEnabledUseCase = new AddonEnabledUseCase();
+ let settingUseCase = new SettingUseCase();
+
+ try {
+ let current = await settingUseCase.reload();
+ let disabled = blacklists.includes(
+ current.blacklist, window.location.href,
+ );
+ if (disabled) {
+ addonEnabledUseCase.disable();
+ } else {
+ addonEnabledUseCase.enable();
+ }
+ } catch (e) {
+ // Sometime sendMessage fails when background script is not ready.
+ console.warn(e);
+ setTimeout(() => reloadSettings(), 500);
+ }
+};
+reloadSettings();