mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Convert navigateForExtension init to runnable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
1 parent
d585b0957c
commit
659b63d0cf
6 files changed
+46
-31
No files matched your search
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
|
||||
import type { MessageChannel } from "../../../../common/utils/channel/message-channel-listener-injection-token";
|
||||
|
||||
export interface NavigateForExtensionArgs {
|
||||
extId: string;
|
||||
pageId: string | undefined;
|
||||
params: Record<string, any> | undefined;
|
||||
}
|
||||
|
||||
export const navigateForExtensionChannel: MessageChannel<NavigateForExtensionArgs> = {
|
||||
id: "navigate-for-extension",
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token";
|
||||
import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable";
|
||||
import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension";
|
||||
import { navigateForExtensionChannel } from "../common/channel";
|
||||
|
||||
const navigateForExtensionListenerInjectable = getMessageChannelListenerInjectable({
|
||||
channel: navigateForExtensionChannel,
|
||||
id: "main",
|
||||
handler: (di) => {
|
||||
const extensionLoader = di.inject(extensionLoaderInjectable);
|
||||
|
||||
return ({ extId, pageId, params }) => {
|
||||
const extension = extensionLoader.getInstanceById(extId) as LensRendererExtension | undefined;
|
||||
|
||||
if (extension) {
|
||||
extension.navigate(pageId, params);
|
||||
}
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
export default navigateForExtensionListenerInjectable;
|
||||
Reference in new issue
Block a user