diff --git a/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx b/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx new file mode 100644 index 0000000000..07718ab1a7 --- /dev/null +++ b/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx @@ -0,0 +1,87 @@ +import { alpha, SvgIcon, withStyles } from "@material-ui/core"; +import { TreeItem, TreeItemProps, TreeView } from "@material-ui/lab"; +import { withInjectables } from "@ogre-tools/injectable-react"; +import React from "react"; +import type { Namespace } from "../../../common/k8s-api/endpoints"; +import { DrawerTitle } from "../drawer"; +import type { NamespaceStore } from "./store"; +import namespaceStoreInjectable from "./store.injectable"; + +interface NamespaceTreeViewProps { + root: Namespace; +} + +interface Dependencies { + namespaceStore: NamespaceStore; +} + +function NonInjectableNamespaceTreeView({ root }: Dependencies & NamespaceTreeViewProps) { + function renderChildren(parent: Namespace) { + return ( +
no children
+ ); + } + + if (!root.getLabels().find(label => label === "hnc.x-k8s.io/included-namespace=true")) { + return null; + } + + return ( +
+ Tree View + } + defaultExpandIcon={} + defaultEndIcon={} + > + + {renderChildren(root)} + + +
+ ) +} + +function MinusSquare() { + return ( + + + + ); +} + +function PlusSquare() { + return ( + + + + ); +} + +function CloseSquare() { + return ( + + + + ); +} + +const StyledTreeItem = withStyles((theme) => ({ + iconContainer: { + '& .close': { + opacity: 0.3, + }, + }, + group: { + marginLeft: 8, + paddingLeft: 16, + borderLeft: `1px dashed ${alpha(theme.palette.text.primary, 0.4)}`, + }, +}))((props: TreeItemProps) => ); + +export const NamespaceTreeView = withInjectables(NonInjectableNamespaceTreeView, { + getProps: (di, props) => ({ + namespaceStore: di.inject(namespaceStoreInjectable), + ...props, + }), +});