diff --git a/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts b/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts index cb6e9688cc..a9e8a0d4e1 100644 --- a/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts +++ b/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts @@ -8,74 +8,75 @@ import navigateToAddClusterInjectable from "../../../common/front-end-routing/ro import isLinuxInjectable from "../../../common/vars/is-linux.injectable"; import isWindowsInjectable from "../../../common/vars/is-windows.injectable"; import openPathPickingDialogInjectable from "../../../features/path-picking-dialog/renderer/pick-paths.injectable"; +import setupAppPathsInjectable from "../../app-paths/setup-app-paths.injectable"; import addSyncEntriesInjectable from "../../initializers/add-sync-entries.injectable"; import { beforeFrameStartsInjectionToken } from "../tokens"; const setupKubernetesClusterCatalogAddMenuListenerInjectable = getInjectable({ id: "setup-kubernetes-cluster-catalog-add-menu-listener", - instantiate: (di) => { - const navigateToAddCluster = di.inject(navigateToAddClusterInjectable); - const addSyncEntries = di.inject(addSyncEntriesInjectable); - const kubernetesClusterCategory = di.inject(kubernetesClusterCategoryInjectable); - const isWindows = di.inject(isWindowsInjectable); - const isLinux = di.inject(isLinuxInjectable); - const openPathPickingDialog = di.inject(openPathPickingDialogInjectable); + instantiate: (di) => ({ + id: "setup-kubernetes-cluster-catalog-add-menu-listener", + run: () => { + // NOTE: these have to be here so that they are initialized only after the `runAfter` is ran + const navigateToAddCluster = di.inject(navigateToAddClusterInjectable); + const addSyncEntries = di.inject(addSyncEntriesInjectable); + const kubernetesClusterCategory = di.inject(kubernetesClusterCategoryInjectable); + const isWindows = di.inject(isWindowsInjectable); + const isLinux = di.inject(isLinuxInjectable); + const openPathPickingDialog = di.inject(openPathPickingDialogInjectable); - return { - id: "setup-kubernetes-cluster-catalog-add-menu-listener", - run: () => { - kubernetesClusterCategory.on("catalogAddMenu", ctx => { + kubernetesClusterCategory.on("catalogAddMenu", ctx => { + ctx.menuItems.push( + { + icon: "text_snippet", + title: "Add from kubeconfig", + onClick: navigateToAddCluster, + }, + ); + + if (isWindows || isLinux) { ctx.menuItems.push( { - icon: "text_snippet", - title: "Add from kubeconfig", - onClick: navigateToAddCluster, + icon: "create_new_folder", + title: "Sync kubeconfig folder(s)", + defaultAction: true, + onClick: () => openPathPickingDialog({ + label: "Sync folder(s)", + buttonLabel: "Sync", + properties: ["showHiddenFiles", "multiSelections", "openDirectory"], + onPick: addSyncEntries, + }), + }, + { + icon: "note_add", + title: "Sync kubeconfig file(s)", + onClick: () => openPathPickingDialog({ + label: "Sync file(s)", + buttonLabel: "Sync", + properties: ["showHiddenFiles", "multiSelections", "openFile"], + onPick: addSyncEntries, + }), }, ); - - if (isWindows || isLinux) { - ctx.menuItems.push( - { - icon: "create_new_folder", - title: "Sync kubeconfig folder(s)", - defaultAction: true, - onClick: () => openPathPickingDialog({ - label: "Sync folder(s)", - buttonLabel: "Sync", - properties: ["showHiddenFiles", "multiSelections", "openDirectory"], - onPick: addSyncEntries, - }), - }, - { - icon: "note_add", - title: "Sync kubeconfig file(s)", - onClick: () => openPathPickingDialog({ - label: "Sync file(s)", - buttonLabel: "Sync", - properties: ["showHiddenFiles", "multiSelections", "openFile"], - onPick: addSyncEntries, - }), - }, - ); - } else { - ctx.menuItems.push( - { - icon: "create_new_folder", - title: "Sync kubeconfig(s)", - defaultAction: true, - onClick: () => openPathPickingDialog({ - label: "Sync file(s)", - buttonLabel: "Sync", - properties: ["showHiddenFiles", "multiSelections", "openFile", "openDirectory"], - onPick: addSyncEntries, - }), - }, - ); - } - }); - }, - }; - }, + } else { + ctx.menuItems.push( + { + icon: "create_new_folder", + title: "Sync kubeconfig(s)", + defaultAction: true, + onClick: () => openPathPickingDialog({ + label: "Sync file(s)", + buttonLabel: "Sync", + properties: ["showHiddenFiles", "multiSelections", "openFile", "openDirectory"], + onPick: addSyncEntries, + }), + }, + ); + } + }); + }, + runAfter: di.inject(setupAppPathsInjectable), + }), injectionToken: beforeFrameStartsInjectionToken, });