Mark keys as a clean archtecture

This commit is contained in:
Shin'ya Ueoka 2019-05-14 20:28:22 +09:00
parent efc48dc742
commit 2ec912c262
8 changed files with 200 additions and 7 deletions

View file

@ -0,0 +1,31 @@
import MarkUseCase from '../usecases/MarkUseCase';
import MarkKeyyUseCase from '../usecases/MarkKeyUseCase';
import * as keys from '../../shared/utils/keys';
export default class MarkKeyController {
private markUseCase: MarkUseCase;
private markKeyUseCase: MarkKeyyUseCase;
constructor({
markUseCase = new MarkUseCase(),
markKeyUseCase = new MarkKeyyUseCase(),
} = {}) {
this.markUseCase = markUseCase;
this.markKeyUseCase = markKeyUseCase;
}
press(key: keys.Key): boolean {
if (this.markKeyUseCase.isSetMode()) {
this.markUseCase.set(key.key);
this.markKeyUseCase.disableSetMode();
return true;
}
if (this.markKeyUseCase.isJumpMode()) {
this.markUseCase.jump(key.key);
this.markKeyUseCase.disableJumpMode();
return true;
}
return false;
}
}