From 63c981c36859e98327bf30862941a5bebe724d9e Mon Sep 17 00:00:00 2001 From: Jari Kolehmainen Date: Wed, 7 Apr 2021 18:38:38 +0300 Subject: [PATCH] improve CatalogPusher.init Signed-off-by: Jari Kolehmainen --- src/main/catalog-pusher.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/catalog-pusher.ts b/src/main/catalog-pusher.ts index 268566b81e..ffe8cc17d0 100644 --- a/src/main/catalog-pusher.ts +++ b/src/main/catalog-pusher.ts @@ -1,5 +1,5 @@ import { autorun, toJS } from "mobx"; -import { broadcastMessage, subscribeToBroadcast } from "../common/ipc"; +import { broadcastMessage, subscribeToBroadcast, unsubscribeFromBroadcast } from "../common/ipc"; import { CatalogEntityRegistry} from "../common/catalog-entity-registry"; import "../common/catalog-entities/kubernetes-cluster"; @@ -8,16 +8,22 @@ export class CatalogPusher { new CatalogPusher(catalog).init(); } - constructor(private catalog: CatalogEntityRegistry) {} + private constructor(private catalog: CatalogEntityRegistry) {} init() { - autorun(() => { + const disposers: { (): void; }[] = []; + + disposers.push(autorun(() => { + this.broadcast(); + })); + + const listener = subscribeToBroadcast("catalog:broadcast", () => { this.broadcast(); }); - subscribeToBroadcast("catalog:broadcast", () => { - this.broadcast(); - }); + disposers.push(() => unsubscribeFromBroadcast("catalog:broadcast", listener)); + + return disposers; } broadcast() {