+
+ }
+ defaultExpandIcon={}
+ defaultSelected="browse"
+ >
+ - props.onItemClick("*")}/>
+
- Categories
}
+ className={cssNames(styles.bordered, styles.accent)}
+ >
+ {
+ getCategories().map(category => (
+ - props.onItemClick(category.getId())}
+ />
+ ))
+ }
+
+
+
+
+ );
+}
diff --git a/src/renderer/components/+catalog/catalog-tree.module.css b/src/renderer/components/+catalog/catalog-tree.module.css
new file mode 100644
index 0000000000..ea4f42d1cf
--- /dev/null
+++ b/src/renderer/components/+catalog/catalog-tree.module.css
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2021 OpenLens Authors
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+.root {
+ color: var(--textColorTertiary);
+ min-height: 26px;
+}
+
+.label {
+ font-size: var(--font-size);
+ background-color: transparent!important;
+}
+
+.label:hover {
+ background-color: transparent;
+}
+
+.content {
+ min-height: 26px;
+}
+
+.content:hover {
+ background-color: var(--blue);
+ color: var(--textColorAccent);
+}
+
+.group {
+ margin-left: 0;
+}
+
+.selected > *:first-child {
+ background-color: var(--blue);
+ color: var(--textColorAccent);
+}
+
+.iconContainer {
+ width: 21px;
+ margin-left: 5px;
+ margin-right: 0;
+}
\ No newline at end of file
diff --git a/src/renderer/components/+catalog/catalog.tsx b/src/renderer/components/+catalog/catalog.tsx
index 9d9ac6fd2e..7f50fe9a79 100644
--- a/src/renderer/components/+catalog/catalog.tsx
+++ b/src/renderer/components/+catalog/catalog.tsx
@@ -32,7 +32,6 @@ import type { CatalogEntityContextMenu, CatalogEntityContextMenuContext } from "
import { Badge } from "../badge";
import { HotbarStore } from "../../../common/hotbar-store";
import { ConfirmDialog } from "../confirm-dialog";
-import { Tab, Tabs } from "../tabs";
import { catalogCategoryRegistry } from "../../../common/catalog";
import { CatalogAddButton } from "./catalog-add-button";
import type { RouteComponentProps } from "react-router";
@@ -43,6 +42,7 @@ import { cssNames } from "../../utils";
import { makeCss } from "../../../common/utils/makeCss";
import { CatalogEntityDetails } from "./catalog-entity-details";
import type { CatalogViewRouteParam } from "../../../common/routes";
+import { CatalogMenu } from "./catalog-menu";
enum sortBy {
name = "name",
@@ -141,30 +141,7 @@ export class Catalog extends React.Component