mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Show splash window until bundled extensions have been loaded (#4570)
* Show splash window until bundled extensions have been loaded Signed-off-by: Juho Heikka <juho.heikka@gmail.com> * Remove unnecessary variable. Signed-off-by: Juho Heikka <juho.heikka@gmail.com> * Refactor autoInitExtensions Signed-off-by: Juho Heikka <juho.heikka@gmail.com> * Add timeout to waiting for bundled extensions to load Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
This commit is contained in:
1 parent
43277d2af6
commit
9284741df5
5 files changed
+55
-7
No files matched your search
@@ -29,7 +29,7 @@ import { ErrorBoundary } from "./components/error-boundary";
|
||||
import { Notifications } from "./components/notifications";
|
||||
import { ConfirmDialog } from "./components/confirm-dialog";
|
||||
import type { ExtensionLoader } from "../extensions/extension-loader";
|
||||
import { broadcastMessage } from "../common/ipc";
|
||||
import { broadcastMessage, BundledExtensionsLoaded } from "../common/ipc";
|
||||
import { CommandContainer } from "./components/command-palette/command-container";
|
||||
import { registerIpcListeners } from "./ipc";
|
||||
import { ipcRenderer } from "electron";
|
||||
@@ -39,6 +39,7 @@ import logger from "../common/logger";
|
||||
import { unmountComponentAtNode } from "react-dom";
|
||||
import { ClusterFrameHandler } from "./components/cluster-manager/lens-views";
|
||||
import type { LensProtocolRouterRenderer } from "./protocol-handler";
|
||||
import { delay } from "./utils";
|
||||
|
||||
injectSystemCAs();
|
||||
|
||||
@@ -54,8 +55,21 @@ export class RootFrame extends React.Component {
|
||||
lensProtocolRouterRendererInjectable: LensProtocolRouterRenderer,
|
||||
) {
|
||||
catalogEntityRegistry.init();
|
||||
extensionLoader.loadOnClusterManagerRenderer();
|
||||
|
||||
try {
|
||||
// maximum time to let bundled extensions finish loading
|
||||
const timeout = delay(10000);
|
||||
|
||||
const loadingExtensions = extensionLoader.loadOnClusterManagerRenderer();
|
||||
const loadingBundledExtensions = loadingExtensions.filter(e => e.isBundled).map(e => e.loaded);
|
||||
const bundledExtensionsFinished = Promise.all(loadingBundledExtensions);
|
||||
|
||||
await Promise.race([bundledExtensionsFinished, timeout]);
|
||||
} finally {
|
||||
ipcRenderer.send(BundledExtensionsLoaded);
|
||||
}
|
||||
lensProtocolRouterRendererInjectable.init();
|
||||
|
||||
bindProtocolAddRouteHandlers();
|
||||
|
||||
window.addEventListener("offline", () => broadcastMessage("network:offline"));
|
||||
|
||||
Reference in new issue
Block a user