Move some navigation operations to background

This commit is contained in:
Shin'ya Ueoka 2019-05-23 21:30:07 +09:00
parent 07897df636
commit 5a7db96feb
7 changed files with 150 additions and 13 deletions

View file

@ -12,6 +12,7 @@ import MarkKeyController from './controllers/MarkKeyController';
import AddonEnabledController from './controllers/AddonEnabledController';
import SettingController from './controllers/SettingController';
import ConsoleFrameController from './controllers/ConsoleFrameController';
import NavigateController from './controllers/NavigateController';
import * as messages from '../shared/messages';
type Message = messages.Message;
@ -33,6 +34,7 @@ export default class Application {
private addonEnabledController: AddonEnabledController,
private settingController: SettingController,
private consoleFrameController: ConsoleFrameController,
private navigateController: NavigateController,
) {
}
@ -98,6 +100,14 @@ export default class Application {
return this.settingController.reloadSettings(msg);
case messages.ADDON_TOGGLE_ENABLED:
return this.addonEnabledUseCase.toggle();
case messages.NAVIGATE_HISTORY_NEXT:
return this.navigateController.openHistoryNext(msg);
case messages.NAVIGATE_HISTORY_PREV:
return this.navigateController.openHistoryPrev(msg);
case messages.NAVIGATE_LINK_NEXT:
return this.navigateController.openLinkNext(msg);
case messages.NAVIGATE_LINK_PREV:
return this.navigateController.openLinkPrev(msg);
}
});

View file

@ -84,18 +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;

View file

@ -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();
}
}