Pārlūkot izejas kodu

fix: when keepAlive is enabled, returning directly through browser buttons/gestures will not close pop ups (#6113)

LinaBell 5 dienas atpakaļ
vecāks
revīzija
8f4d3d418d

+ 9 - 0
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;
   }
 

+ 9 - 0
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<TParentModalProps extends ModalProps = ModalProps>(
         inheritAttrs: false,
       },
     );
+
+    /**
+     * 在开启keepAlive情况下 直接通过浏览器按钮/手势等返回 不会关闭弹窗
+     */
+    onDeactivated(() => {
+      (extendedApi as ExtendedModalApi)?.close?.();
+    });
+
     return [Modal, extendedApi as ExtendedModalApi] as const;
   }