1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Set isActive prop

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2022-04-25 11:05:23 +03:00
parent 1f6420f85b
commit 0c93c6dbf0

View File

@ -3,10 +3,14 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { matches } from "lodash/fp";
import { computed } from "mobx";
import extensionPreferencesRouteInjectable from "../../../../common/front-end-routing/routes/preferences/extension/extension-preferences-route.injectable";
import navigateToExtensionPreferencesInjectable from "../../../../common/front-end-routing/routes/preferences/extension/navigate-to-extension-preferences.injectable";
import { extensionRegistratorInjectionToken } from "../../../../extensions/extension-loader/extension-registrator-injection-token";
import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension";
import currentPathParametersInjectable from "../../../routes/current-path-parameters.injectable";
import routeIsActiveInjectable from "../../../routes/route-is-active.injectable";
import { preferenceNavigationItemInjectionToken } from "./preference-navigation-items.injectable";
const extensionPreferencesNavigationItemRegistratorInjectable = getInjectable({
@ -18,6 +22,12 @@ const extensionPreferencesNavigationItemRegistratorInjectable = getInjectable({
navigateToExtensionPreferencesInjectable,
);
const isVisible = extension.appPreferences.length > 0;
const extensionRoute = di.inject(extensionPreferencesRouteInjectable);
const extensionPreferencesRouteIsActive = di.inject(routeIsActiveInjectable, extensionRoute);
const pathParameters = di.inject(currentPathParametersInjectable);
const extensionPreferencesPathParameters = { extensionId: extension.sanitizedExtensionId };
const isActive = extensionPreferencesRouteIsActive.get() &&
matches(extensionPreferencesPathParameters, pathParameters.get());
const extensionInjectable = getInjectable({
id: `extension-preferences-navigation-item-${extension.sanitizedExtensionId}`,
@ -25,7 +35,7 @@ const extensionPreferencesNavigationItemRegistratorInjectable = getInjectable({
id: `extension-${extension.sanitizedExtensionId}`,
label: `${extension.name}`,
navigate: () => navigateToExtensionPreferences(extension.sanitizedExtensionId),
isActive: computed(() => false),
isActive: computed(() => isActive),
isVisible: computed(() => isVisible),
orderNumber: 20,
}),