From 0dcf890d5f9c2c6611cb02787c6f38bd8876573e Mon Sep 17 00:00:00 2001 From: Alex Andreev Date: Fri, 3 Feb 2023 13:04:55 +0300 Subject: [PATCH] Highlight expandable items only if they collapsed Signed-off-by: Alex Andreev --- .../renderer/components/layout/sidebar-items.injectable.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/core/src/renderer/components/layout/sidebar-items.injectable.ts b/packages/core/src/renderer/components/layout/sidebar-items.injectable.ts index e5f067b64d..a61259caa4 100644 --- a/packages/core/src/renderer/components/layout/sidebar-items.injectable.ts +++ b/packages/core/src/renderer/components/layout/sidebar-items.injectable.ts @@ -17,6 +17,8 @@ import { orderBy, some, } from "lodash/fp"; +import sidebarStorageInjectable, { SidebarStorageState } from "./sidebar-storage/sidebar-storage.injectable"; +import type { StorageLayer } from "../../utils"; export interface SidebarItemRegistration { id: string; @@ -44,7 +46,7 @@ const sidebarItemsInjectable = getInjectable({ instantiate: (di) => { const computedInjectMany = di.inject(computedInjectManyInjectable); - + const sidebarStorage: StorageLayer = di.inject(sidebarStorageInjectable) const sidebarItemRegistrations = computedInjectMany(sidebarItemsInjectionToken); return computed((): HierarchicalSidebarItem[] => { @@ -63,6 +65,8 @@ const sidebarItemsInjectable = getInjectable({ map((registration) => { const children = _getSidebarItemsHierarchy(registration.id); + const parentExpanded = () => Boolean(sidebarStorage.get().expanded[registration.id]) + return { registration, children, @@ -76,6 +80,7 @@ const sidebarItemsInjectable = getInjectable({ children, invokeMap("isActive.get"), some(identity), + (identityFound) => identityFound && !parentExpanded(), ); }), };