aboutsummaryrefslogtreecommitdiff
path: root/src/content/usecases
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2021-03-17 23:20:41 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2021-03-21 12:24:36 +0900
commit3ffb4b066cdcc60a49ce4ecd0bbc498da6256534 (patch)
treed118d1c1251fd93b9d36df79da80056ff13938b3 /src/content/usecases
parent5382f2353e693bc8e2682eb045e8bb9930829adc (diff)
Attach/detach console iframe on addon enabled/disabled
Diffstat (limited to 'src/content/usecases')
-rw-r--r--src/content/usecases/AddonEnabledUseCase.ts14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/content/usecases/AddonEnabledUseCase.ts b/src/content/usecases/AddonEnabledUseCase.ts
index f7e78c5..b45c47f 100644
--- a/src/content/usecases/AddonEnabledUseCase.ts
+++ b/src/content/usecases/AddonEnabledUseCase.ts
@@ -1,15 +1,17 @@
import { injectable, inject } from "tsyringe";
import AddonIndicatorClient from "../client/AddonIndicatorClient";
import AddonEnabledRepository from "../repositories/AddonEnabledRepository";
+import ConsoleFramePresenter from "../presenters/ConsoleFramePresenter";
@injectable()
export default class AddonEnabledUseCase {
constructor(
@inject("AddonIndicatorClient")
- private indicator: AddonIndicatorClient,
-
+ private readonly indicator: AddonIndicatorClient,
@inject("AddonEnabledRepository")
- private repository: AddonEnabledRepository
+ private readonly repository: AddonEnabledRepository,
+ @inject("ConsoleFramePresenter")
+ private readonly consoleFramePresenter: ConsoleFramePresenter
) {}
async enable(): Promise<void> {
@@ -31,6 +33,12 @@ export default class AddonEnabledUseCase {
private async setEnabled(on: boolean): Promise<void> {
this.repository.set(on);
+
+ if (on) {
+ this.consoleFramePresenter.attach();
+ } else {
+ this.consoleFramePresenter.detach();
+ }
await this.indicator.setEnabled(on);
}
}