From a25bb0d80f82b2de3730ec244257a1737f4eb7e0 Mon Sep 17 00:00:00 2001 From: JimmFly Date: Mon, 21 Oct 2024 06:28:31 +0000 Subject: [PATCH] feat(core): keep the sidebar instance when the sidebar is collapsed (#8560) close AF-1507 AF-1506 AF-1479 https://github.com/user-attachments/assets/627242e3-f6f9-44c5-b0c8-87806cbb8489 --- .../frontend/core/src/modules/app-sidebar/views/index.tsx | 1 + .../app-sidebar/views/sidebar-header/sidebar-switch.tsx | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/frontend/core/src/modules/app-sidebar/views/index.tsx b/packages/frontend/core/src/modules/app-sidebar/views/index.tsx index 52e364cc06..28dc9027f8 100644 --- a/packages/frontend/core/src/modules/app-sidebar/views/index.tsx +++ b/packages/frontend/core/src/modules/app-sidebar/views/index.tsx @@ -181,6 +181,7 @@ export function AppSidebar({ children }: PropsWithChildren) { onOpen={handleOpenChange} onResizing={handleResizing} onWidthChange={handleWidthChange} + unmountOnExit={false} className={clsx(navWrapperStyle, { [hoverNavWrapperStyle]: sidebarState === 'floating', })} diff --git a/packages/frontend/core/src/modules/app-sidebar/views/sidebar-header/sidebar-switch.tsx b/packages/frontend/core/src/modules/app-sidebar/views/sidebar-header/sidebar-switch.tsx index 36bca5822e..abc6bfb7dd 100644 --- a/packages/frontend/core/src/modules/app-sidebar/views/sidebar-header/sidebar-switch.tsx +++ b/packages/frontend/core/src/modules/app-sidebar/views/sidebar-header/sidebar-switch.tsx @@ -19,9 +19,8 @@ export const SidebarSwitch = ({ const preventHovering = useLiveData(appSidebarService.preventHovering$); const timeoutRef = useRef(null); const switchRef = useRef(null); - const handleMouseEnter = useCallback(() => { - if (open || preventHovering) { + if (preventHovering || open) { return; } appSidebarService.setHovering(true); @@ -32,6 +31,7 @@ export const SidebarSwitch = ({ clearTimeout(timeoutRef.current); } if (open) { + appSidebarService.setHovering(false); timeoutRef.current = setTimeout(() => { appSidebarService.setPreventHovering(false); }, 500);