mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
- This fixes a runtime error that was encountered during testing Signed-off-by: Sebastian Malton <sebastian@malton.name>
43 lines
1.5 KiB
TypeScript
43 lines
1.5 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 hideDetailsInjectable from "./hide-details.injectable";
|
|
import kubeSelectedUrlParamInjectable from "./kube-selected-url.injectable";
|
|
import showDetailsInjectable from "./show-details.injectable";
|
|
|
|
export interface ToggleDetails {
|
|
/**
|
|
* @param selfLink The selfLink of the kube object to toggle the details panal of
|
|
* @param resetSelected If true then the selected kube object (for the current list view) will be reset
|
|
* @default resetSelected true
|
|
*/
|
|
(selfLink: string, resetSelected?: boolean): void;
|
|
/**
|
|
* @deprecated Future versions will not support passing in `selfLink` that is `undefined`
|
|
*/
|
|
(selfLink: string | undefined, resetSelected?: boolean): void;
|
|
}
|
|
|
|
const toggleDetailsInjectable = getInjectable({
|
|
id: "toggle-details",
|
|
instantiate: (di): ToggleDetails => {
|
|
const showDetails = di.inject(showDetailsInjectable);
|
|
const hideDetails = di.inject(hideDetailsInjectable);
|
|
const kubeSelectedUrlParam = di.inject(kubeSelectedUrlParamInjectable);
|
|
|
|
return (selfLink, resetSelected = true) => {
|
|
const current = kubeSelectedUrlParam.get() === selfLink;
|
|
|
|
if (current || !selfLink) {
|
|
hideDetails();
|
|
} else {
|
|
showDetails(selfLink, resetSelected);
|
|
}
|
|
};
|
|
},
|
|
});
|
|
|
|
export default toggleDetailsInjectable;
|