aboutsummaryrefslogtreecommitdiff
path: root/src/content/components/top-content
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2019-05-11 11:37:18 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2019-05-11 11:37:18 +0900
commit1ba1660269b24446e9df7df0016de8c3e5596c8f (patch)
tree545e801e2039e1a49f86c6337a7110a8ed62cad8 /src/content/components/top-content
parentbacf83a32083c5a4c4a45c061288081423bbf18a (diff)
Make find as a clean architecture
Diffstat (limited to 'src/content/components/top-content')
-rw-r--r--src/content/components/top-content/find.ts26
-rw-r--r--src/content/components/top-content/index.ts2
2 files changed, 9 insertions, 19 deletions
diff --git a/src/content/components/top-content/find.ts b/src/content/components/top-content/find.ts
index 74b95bc..c25cbeb 100644
--- a/src/content/components/top-content/find.ts
+++ b/src/content/components/top-content/find.ts
@@ -1,13 +1,12 @@
-import * as findActions from '../../actions/find';
import * as messages from '../../../shared/messages';
import MessageListener from '../../MessageListener';
-export default class FindComponent {
- private store: any;
+import FindUseCase from '../../usecases/FindUseCase';
- constructor(store: any) {
- this.store = store;
+let findUseCase = new FindUseCase();
+export default class FindComponent {
+ constructor() {
new MessageListener().onWebMessage(this.onMessage.bind(this));
}
@@ -20,27 +19,18 @@ export default class FindComponent {
case messages.FIND_PREV:
return this.prev();
}
+ return Promise.resolve();
}
start(text: string) {
- let state = this.store.getState().find;
-
- if (text.length === 0) {
- return this.store.dispatch(
- findActions.next(state.keyword as string, true));
- }
- return this.store.dispatch(findActions.next(text, true));
+ return findUseCase.startFind(text.length === 0 ? null : text);
}
next() {
- let state = this.store.getState().find;
- return this.store.dispatch(
- findActions.next(state.keyword as string, false));
+ return findUseCase.findNext();
}
prev() {
- let state = this.store.getState().find;
- return this.store.dispatch(
- findActions.prev(state.keyword as string, false));
+ return findUseCase.findPrev();
}
}
diff --git a/src/content/components/top-content/index.ts b/src/content/components/top-content/index.ts
index 101edca..b9ef2dd 100644
--- a/src/content/components/top-content/index.ts
+++ b/src/content/components/top-content/index.ts
@@ -17,7 +17,7 @@ export default class TopContent {
new CommonComponent(win, store); // eslint-disable-line no-new
new FollowController(win, store); // eslint-disable-line no-new
- new FindComponent(store); // eslint-disable-line no-new
+ new FindComponent(); // eslint-disable-line no-new
// TODO make component
consoleFrames.initialize(this.win.document);