From e7d46845310847c86d8f49e524b0875bd0187982 Mon Sep 17 00:00:00 2001 From: EYHN Date: Thu, 10 Apr 2025 02:56:10 +0000 Subject: [PATCH] feat(core): hide sidebar when sidebar is not visible (#11560) --- .../core/src/modules/workbench/view/view-islands.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/frontend/core/src/modules/workbench/view/view-islands.tsx b/packages/frontend/core/src/modules/workbench/view/view-islands.tsx index 87fa9d7a5f..259422cf03 100644 --- a/packages/frontend/core/src/modules/workbench/view/view-islands.tsx +++ b/packages/frontend/core/src/modules/workbench/view/view-islands.tsx @@ -45,6 +45,7 @@ import { } from 'react'; import { ViewService } from '../services/view'; +import { WorkbenchService } from '../services/workbench'; interface ViewIslandRegistry { [key: string]: Island | undefined; @@ -167,7 +168,12 @@ export const ViewSidebarTab = ({ unmountOnInactive?: boolean; }>) => { const view = useService(ViewService).view; + const workbench = useService(WorkbenchService).workbench; + const sidebarOpened = useLiveData(workbench.sidebarOpen$); const activeTab = useLiveData(view.activeSidebarTab$); + + const isActive = activeTab?.id === tabId && sidebarOpened; + useEffect(() => { view.addSidebarTab(tabId); return () => { @@ -179,7 +185,7 @@ export const ViewSidebarTab = ({ <> {icon} - {unmountOnInactive && activeTab?.id !== tabId ? null : children} + {unmountOnInactive && !isActive ? null : children} );