From 7cd4cdb5e02a4b0f0d4c5b1ed177ac69d0567081 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 28 Feb 2023 15:09:30 -0500 Subject: [PATCH] Resolve comments Signed-off-by: Sebastian Malton --- .../catalog-entity-store.injectable.ts | 4 +- .../components/tree-view/tree-view.tsx | 65 ++++++++++++------- 2 files changed, 43 insertions(+), 26 deletions(-) diff --git a/packages/core/src/renderer/components/+catalog/catalog-entity-store.injectable.ts b/packages/core/src/renderer/components/+catalog/catalog-entity-store.injectable.ts index 221e7b77f5..35c8bf4043 100644 --- a/packages/core/src/renderer/components/+catalog/catalog-entity-store.injectable.ts +++ b/packages/core/src/renderer/components/+catalog/catalog-entity-store.injectable.ts @@ -35,8 +35,8 @@ const catalogEntityStoreInjectable = getInjectable({ const entityRegistry = di.inject(catalogEntityRegistryInjectable); const catalogRegistry = di.inject(catalogCategoryRegistryInjectable); - const activeCategory = observable.box(undefined); - const selectedItemId = observable.box(undefined); + const activeCategory = observable.box(); + const selectedItemId = observable.box(); const entities = computed(() => { const category = activeCategory.get(); diff --git a/packages/core/src/renderer/components/tree-view/tree-view.tsx b/packages/core/src/renderer/components/tree-view/tree-view.tsx index 4384357cde..506de21bcf 100644 --- a/packages/core/src/renderer/components/tree-view/tree-view.tsx +++ b/packages/core/src/renderer/components/tree-view/tree-view.tsx @@ -15,7 +15,7 @@ export interface TreeViewClasses { export interface TreeViewProps { classes?: TreeViewClasses; - children: JSX.Element[] | JSX.Element; + children: React.ReactNode; } export function TreeView(props: TreeViewProps) { @@ -47,33 +47,41 @@ export interface TreeItemProps { } export function TreeItem(props: TreeItemProps) { + const { + label, + "data-testid": dataTestId, + classes, + icon, + onClick, + selected = false, + } = props; const [hovering, setHovering] = useState(false); const optionalCssNames: Partial> = {}; - if (props.classes?.selected) { - optionalCssNames[props.classes.selected] = props.selected ?? false; + if (classes?.selected) { + optionalCssNames[classes.selected] = selected; } - if (props.classes?.hover) { - optionalCssNames[props.classes.hover] = hovering; + if (classes?.hover) { + optionalCssNames[classes.hover] = hovering; } return (
  • setHovering(true)} onMouseLeave={() => setHovering(false)} > -
    - {props.icon} +
    + {icon}
    -
    - {props.label} +
    + {label}
  • ); @@ -98,35 +106,44 @@ export interface TreeGroupProps { } export function TreeGroup(props: TreeGroupProps) { - const [expanded, setExpanded] = useState(props.defaultExpanded ?? true); + const { + label, + "data-testid": dataTestId, + children, + classes, + collapseIcon, + defaultExpanded = true, + expandIcon, + } = props; + const [expanded, setExpanded] = useState(defaultExpanded); return (
  • setExpanded(!expanded)} > -
    +
    { expanded - ? props.collapseIcon ?? - : props.expandIcon ?? + ? collapseIcon ?? + : expandIcon ?? }
    -
    - {props.label} +
    + {label}
      - {props.children} + {children}
  • );