aboutsummaryrefslogtreecommitdiff
path: root/src/content/components/common/mark.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/components/common/mark.ts')
-rw-r--r--src/content/components/common/mark.ts48
1 files changed, 4 insertions, 44 deletions
diff --git a/src/content/components/common/mark.ts b/src/content/components/common/mark.ts
index ddd1a38..eec95d6 100644
--- a/src/content/components/common/mark.ts
+++ b/src/content/components/common/mark.ts
@@ -1,22 +1,15 @@
import * as markActions from '../../actions/mark';
import * as consoleFrames from '../..//console-frames';
import * as keyUtils from '../../../shared/utils/keys';
-import Mark from '../../Mark';
-import { SettingRepositoryImpl } from '../../repositories/SettingRepository';
-import { ScrollPresenterImpl } from '../../presenters/ScrollPresenter';
+import MarkUseCase from '../../usecases/MarkUseCase';
-let settingRepository = new SettingRepositoryImpl();
-let scrollPresenter = new ScrollPresenterImpl();
+let markUseCase = new MarkUseCase();
const cancelKey = (key: keyUtils.Key): boolean => {
return key.key === 'Esc' || key.key === '[' && Boolean(key.ctrlKey);
};
-const globalKey = (key: string): boolean => {
- return (/^[A-Z0-9]$/).test(key);
-};
-
export default class MarkComponent {
private store: any;
@@ -26,7 +19,6 @@ export default class MarkComponent {
// eslint-disable-next-line max-statements
key(key: keyUtils.Key) {
- let smoothscroll = settingRepository.get().properties.smoothscroll;
let { mark: markState } = this.store.getState();
if (!markState.setMode && !markState.jumpMode) {
@@ -40,45 +32,13 @@ export default class MarkComponent {
if (key.ctrlKey || key.metaKey || key.altKey) {
consoleFrames.postError('Unknown mark');
- } else if (globalKey(key.key) && markState.setMode) {
- this.doSetGlobal(key);
- } else if (globalKey(key.key) && markState.jumpMode) {
- this.doJumpGlobal(key);
} else if (markState.setMode) {
- this.doSet(key);
+ markUseCase.set(key.key);
} else if (markState.jumpMode) {
- this.doJump(markState.marks, key, smoothscroll);
+ markUseCase.jump(key.key);
}
this.store.dispatch(markActions.cancel());
return true;
}
-
- doSet(key: keyUtils.Key) {
- let { x, y } = scrollPresenter.getScroll();
- this.store.dispatch(markActions.setLocal(key.key, x, y));
- }
-
- doJump(
- marks: { [key: string]: Mark },
- key: keyUtils.Key,
- smoothscroll: boolean,
- ) {
- if (!marks[key.key]) {
- consoleFrames.postError('Mark is not set');
- return;
- }
-
- let { x, y } = marks[key.key];
- scrollPresenter.scrollTo(x, y, smoothscroll);
- }
-
- doSetGlobal(key: keyUtils.Key) {
- let { x, y } = scrollPresenter.getScroll();
- this.store.dispatch(markActions.setGlobal(key.key, x, y));
- }
-
- doJumpGlobal(key: keyUtils.Key) {
- this.store.dispatch(markActions.jumpGlobal(key.key));
- }
}