From 56c78c8c8bfcaf810c74d334ec4f142a0248f9cd Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Mon, 5 Dec 2022 11:01:35 -0500 Subject: [PATCH] Move init hotbar store into runnables Signed-off-by: Sebastian Malton --- .../hotbar/store/main/init.injectable.ts | 26 +++++++++++++++++++ .../hotbar/store/renderer/init.injectable.ts | 26 +++++++++++++++++++ src/renderer/bootstrap.tsx | 4 --- 3 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 src/features/hotbar/store/main/init.injectable.ts create mode 100644 src/features/hotbar/store/renderer/init.injectable.ts diff --git a/src/features/hotbar/store/main/init.injectable.ts b/src/features/hotbar/store/main/init.injectable.ts new file mode 100644 index 0000000000..29d8497387 --- /dev/null +++ b/src/features/hotbar/store/main/init.injectable.ts @@ -0,0 +1,26 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectable } from "@ogre-tools/injectable"; +import hotbarStoreInjectable from "../../../../common/hotbars/store.injectable"; +import { beforeApplicationIsLoadingInjectionToken } from "../../../../main/start-main-application/runnable-tokens/before-application-is-loading-injection-token"; +import initClusterStoreInjectable from "../../../cluster/store/main/init.injectable"; + +const initHotbarStoreInjectable = getInjectable({ + id: "init-hotbar-store", + instantiate: (di) => { + const hotbarStore = di.inject(hotbarStoreInjectable); + + return { + id: "init-hotbar-store", + run: () => { + hotbarStore.load(); + }, + runAfter: di.inject(initClusterStoreInjectable), + }; + }, + injectionToken: beforeApplicationIsLoadingInjectionToken, +}); + +export default initHotbarStoreInjectable; diff --git a/src/features/hotbar/store/renderer/init.injectable.ts b/src/features/hotbar/store/renderer/init.injectable.ts new file mode 100644 index 0000000000..662c3f3311 --- /dev/null +++ b/src/features/hotbar/store/renderer/init.injectable.ts @@ -0,0 +1,26 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectable } from "@ogre-tools/injectable"; +import hotbarStoreInjectable from "../../../../common/hotbars/store.injectable"; +import { beforeFrameStartsInjectionToken } from "../../../../renderer/before-frame-starts/tokens"; +import initClusterStoreInjectable from "../../../cluster/store/renderer/init.injectable"; + +const initHotbarStoreInjectable = getInjectable({ + id: "init-hotbar-store", + instantiate: (di) => { + const hotbarStore = di.inject(hotbarStoreInjectable); + + return { + id: "init-hotbar-store", + run: () => { + hotbarStore.load(); + }, + runAfter: di.inject(initClusterStoreInjectable), + }; + }, + injectionToken: beforeFrameStartsInjectionToken, +}); + +export default initHotbarStoreInjectable; diff --git a/src/renderer/bootstrap.tsx b/src/renderer/bootstrap.tsx index e9893fc602..5002f63eab 100644 --- a/src/renderer/bootstrap.tsx +++ b/src/renderer/bootstrap.tsx @@ -25,7 +25,6 @@ import initClusterFrameInjectable from "./frames/cluster-frame/init-cluster-fram import { Router } from "react-router"; import historyInjectable from "./navigation/history.injectable"; import themeStoreInjectable from "./themes/store.injectable"; -import hotbarStoreInjectable from "../common/hotbars/store.injectable"; import assert from "assert"; import startFrameInjectable from "./start-frame/start-frame.injectable"; @@ -46,9 +45,6 @@ export async function bootstrap(di: DiContainer) { extensionDiscovery.init(); - // HotbarStore depends on: ClusterStore - di.inject(hotbarStoreInjectable).load(); - // ThemeStore depends on: UserStore // TODO: Remove temporal dependencies di.inject(themeStoreInjectable);