Follow as a clean architecture

This commit is contained in:
Shin'ya Ueoka 2019-05-19 09:26:52 +09:00
parent 5b7f7f5dbd
commit e0c4182f14
11 changed files with 493 additions and 10 deletions

View file

@ -0,0 +1,32 @@
import * as messages from '../../shared/messages';
import FollowSlaveUseCase from '../usecases/FollowSlaveUseCase';
export default class FollowSlaveController {
private usecase: FollowSlaveUseCase;
constructor({
usecase = new FollowSlaveUseCase(),
} = {}) {
this.usecase = usecase;
}
countTargets(m: messages.FollowRequestCountTargetsMessage): void {
this.usecase.countTargets(m.viewSize, m.framePosition);
}
createHints(m: messages.FollowCreateHintsMessage): void {
this.usecase.createHints(m.viewSize, m.framePosition, m.tags);
}
showHints(m: messages.FollowShowHintsMessage): void {
this.usecase.showHints(m.prefix);
}
activate(m: messages.FollowActivateMessage): void {
this.usecase.activate(m.tag, m.newTab, m.background);
}
clear(_m: messages.FollowRemoveHintsMessage) {
this.usecase.clear();
}
}