mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* Reorganize stuff to prevent circular dependencies Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Install injectable extension to allow injecting reactively many implementations Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Switch to using computedInjectMany over filtering injectMany based on enabled extensions for simplicity Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove await for not being needed Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Sort dependencies alphabetically Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
/**
|
|
* 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 { computed } from "mobx";
|
|
import currentlyInClusterFrameInjectable from "./currently-in-cluster-frame.injectable";
|
|
import { matches } from "lodash/fp";
|
|
import { frontEndRouteInjectionToken } from "../../common/front-end-routing/front-end-route-injection-token";
|
|
import { computedInjectManyInjectable } from "@ogre-tools/injectable-extension-for-mobx";
|
|
|
|
const routesInjectable = getInjectable({
|
|
id: "routes",
|
|
|
|
instantiate: (di) => {
|
|
const computedInjectMany = di.inject(computedInjectManyInjectable);
|
|
const currentlyInClusterFrame = di.inject(currentlyInClusterFrameInjectable);
|
|
const routes = computedInjectMany(frontEndRouteInjectionToken);
|
|
|
|
return computed(() =>
|
|
routes
|
|
.get()
|
|
.filter(matches({ clusterFrame: currentlyInClusterFrame }))
|
|
.filter((route) => route.isEnabled.get()),
|
|
);
|
|
},
|
|
});
|
|
|
|
export default routesInjectable;
|