From 8f4d3d418d993832320072776c2ce9c585d104af Mon Sep 17 00:00:00 2001 From: LinaBell <15891557205@163.com> Date: Tue, 6 May 2025 14:02:23 +0800 Subject: [PATCH 1/2] fix: when keepAlive is enabled, returning directly through browser buttons/gestures will not close pop ups (#6113) --- packages/@core/ui-kit/popup-ui/src/drawer/use-drawer.ts | 9 +++++++++ packages/@core/ui-kit/popup-ui/src/modal/use-modal.ts | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/packages/@core/ui-kit/popup-ui/src/drawer/use-drawer.ts b/packages/@core/ui-kit/popup-ui/src/drawer/use-drawer.ts index ee99ca72..35294758 100644 --- a/packages/@core/ui-kit/popup-ui/src/drawer/use-drawer.ts +++ b/packages/@core/ui-kit/popup-ui/src/drawer/use-drawer.ts @@ -9,6 +9,7 @@ import { h, inject, nextTick, + onDeactivated, provide, reactive, ref, @@ -70,6 +71,14 @@ export function useVbenDrawer< inheritAttrs: false, }, ); + + /** + * 在开启keepAlive情况下 直接通过浏览器按钮/手势等返回 不会关闭弹窗 + */ + onDeactivated(() => { + (extendedApi as ExtendedDrawerApi)?.close?.(); + }); + return [Drawer, extendedApi as ExtendedDrawerApi] as const; } diff --git a/packages/@core/ui-kit/popup-ui/src/modal/use-modal.ts b/packages/@core/ui-kit/popup-ui/src/modal/use-modal.ts index 8726b556..048243da 100644 --- a/packages/@core/ui-kit/popup-ui/src/modal/use-modal.ts +++ b/packages/@core/ui-kit/popup-ui/src/modal/use-modal.ts @@ -5,6 +5,7 @@ import { h, inject, nextTick, + onDeactivated, provide, reactive, ref, @@ -69,6 +70,14 @@ export function useVbenModal( inheritAttrs: false, }, ); + + /** + * 在开启keepAlive情况下 直接通过浏览器按钮/手势等返回 不会关闭弹窗 + */ + onDeactivated(() => { + (extendedApi as ExtendedModalApi)?.close?.(); + }); + return [Modal, extendedApi as ExtendedModalApi] as const; } From 6b1aab9c674ce136f1f960daae8c0f709d18e7e4 Mon Sep 17 00:00:00 2001 From: Jin Mao <50581550+jinmao88@users.noreply.github.com> Date: Tue, 6 May 2025 14:29:50 +0800 Subject: [PATCH 2/2] fix: handle undefined children in generate-menus (#6117) When children is undefined, use empty array as fallback to prevent potential runtime errors. This matches the behavior when hideChildrenInMenu is true. --- packages/utils/src/helpers/generate-menus.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/utils/src/helpers/generate-menus.ts b/packages/utils/src/helpers/generate-menus.ts index 0cb6c935..ac37459b 100644 --- a/packages/utils/src/helpers/generate-menus.ts +++ b/packages/utils/src/helpers/generate-menus.ts @@ -51,7 +51,7 @@ function generateMenus( // 处理子菜单 const resultChildren = hideChildrenInMenu ? [] - : (children as MenuRecordRaw[]); + : ((children as MenuRecordRaw[]) ?? []); // 设置子菜单的父子关系 if (resultChildren.length > 0) {