aboutsummaryrefslogtreecommitdiff
path: root/src/content/controllers
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2019-05-26 16:24:14 +0900
committerGitHub <noreply@github.com>2019-05-26 16:24:14 +0900
commitcd584c8e243bafa8fc284279f716e8113607cd65 (patch)
treebc39bc30369f149e4ba4b6dc9c353b2906c4ef90 /src/content/controllers
parent07897df636ca3e732490d53fd2acf947738bf16e (diff)
parent34a96cdc9c5d7c8a11c6f1ae512fbc97724f61c4 (diff)
Merge pull request #592 from ueokande/repeat-last-operation
Add "repeat last operation" command
Diffstat (limited to 'src/content/controllers')
-rw-r--r--src/content/controllers/KeymapController.ts26
-rw-r--r--src/content/controllers/NavigateController.ts31
2 files changed, 35 insertions, 22 deletions
diff --git a/src/content/controllers/KeymapController.ts b/src/content/controllers/KeymapController.ts
index 1835546..fcfaff1 100644
--- a/src/content/controllers/KeymapController.ts
+++ b/src/content/controllers/KeymapController.ts
@@ -4,10 +4,9 @@ import KeymapUseCase from '../usecases/KeymapUseCase';
import AddonEnabledUseCase from '../usecases/AddonEnabledUseCase';
import FindSlaveUseCase from '../usecases/FindSlaveUseCase';
import ScrollUseCase from '../usecases/ScrollUseCase';
-import NavigateUseCase from '../usecases/NavigateUseCase';
import FocusUseCase from '../usecases/FocusUseCase';
import ClipboardUseCase from '../usecases/ClipboardUseCase';
-import BackgroundClient from '../client/BackgroundClient';
+import OperationClient from '../client/OperationClient';
import MarkKeyyUseCase from '../usecases/MarkKeyUseCase';
import FollowMasterClient from '../client/FollowMasterClient';
import Key from '../domains/Key';
@@ -19,12 +18,13 @@ export default class KeymapController {
private addonEnabledUseCase: AddonEnabledUseCase,
private findSlaveUseCase: FindSlaveUseCase,
private scrollUseCase: ScrollUseCase,
- private navigateUseCase: NavigateUseCase,
private focusUseCase: FocusUseCase,
private clipbaordUseCase: ClipboardUseCase,
- private backgroundClient: BackgroundClient,
private markKeyUseCase: MarkKeyyUseCase,
+ @inject('OperationClient')
+ private backgroundClient: OperationClient,
+
@inject('FollowMasterClient')
private followMasterClient: FollowMasterClient,
) {
@@ -84,24 +84,6 @@ export default class KeymapController {
case operations.MARK_JUMP_PREFIX:
this.markKeyUseCase.enableJumpMode();
break;
- case operations.NAVIGATE_HISTORY_PREV:
- this.navigateUseCase.openHistoryPrev();
- break;
- case operations.NAVIGATE_HISTORY_NEXT:
- this.navigateUseCase.openHistoryNext();
- break;
- case operations.NAVIGATE_LINK_PREV:
- this.navigateUseCase.openLinkPrev();
- break;
- case operations.NAVIGATE_LINK_NEXT:
- this.navigateUseCase.openLinkNext();
- break;
- case operations.NAVIGATE_PARENT:
- this.navigateUseCase.openParent();
- break;
- case operations.NAVIGATE_ROOT:
- this.navigateUseCase.openRoot();
- break;
case operations.FOCUS_INPUT:
this.focusUseCase.focusFirstInput();
break;
diff --git a/src/content/controllers/NavigateController.ts b/src/content/controllers/NavigateController.ts
new file mode 100644
index 0000000..3f2df7a
--- /dev/null
+++ b/src/content/controllers/NavigateController.ts
@@ -0,0 +1,31 @@
+import { injectable } from 'tsyringe';
+import { Message } from '../../shared/messages';
+import NavigateUseCase from '../usecases/NavigateUseCase';
+
+@injectable()
+export default class NavigateController {
+ constructor(
+ private navigateUseCase: NavigateUseCase,
+ ) {
+ }
+
+ openHistoryNext(_m: Message): Promise<void> {
+ this.navigateUseCase.openHistoryNext();
+ return Promise.resolve();
+ }
+
+ openHistoryPrev(_m: Message): Promise<void> {
+ this.navigateUseCase.openHistoryPrev();
+ return Promise.resolve();
+ }
+
+ openLinkNext(_m: Message): Promise<void> {
+ this.navigateUseCase.openLinkNext();
+ return Promise.resolve();
+ }
+
+ openLinkPrev(_m: Message): Promise<void> {
+ this.navigateUseCase.openLinkPrev();
+ return Promise.resolve();
+ }
+}