From 4b39f0bcfd6ca73045238eb51f2cf3c180a0b282 Mon Sep 17 00:00:00 2001 From: gtoxlili <664037691@qq.com> Date: Wed, 8 May 2024 15:06:27 +0800 Subject: [PATCH] fix(dropdown): fixing logic gaps --- packages/components/dropdown/src/use-dropdown.ts | 12 +++++++++++- packages/hooks/use-aria-menu/src/use-menu-item.ts | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/components/dropdown/src/use-dropdown.ts b/packages/components/dropdown/src/use-dropdown.ts index 55fb9071b1..49e0cc2314 100644 --- a/packages/components/dropdown/src/use-dropdown.ts +++ b/packages/components/dropdown/src/use-dropdown.ts @@ -141,7 +141,17 @@ export function useDropdown(props: UseDropdownProps) { menuProps, closeOnSelect, ...mergeProps(props, { - onAction: () => onMenuAction(props?.closeOnSelect), + onAction: (key: any) => { + // @ts-ignore + const item = props?.children?.find((item) => item.key === key); + + if (item?.props?.closeOnSelect === false) { + onMenuAction(false); + + return; + } + onMenuAction(props?.closeOnSelect); + }, onClose: state.close, }), } as MenuProps; diff --git a/packages/hooks/use-aria-menu/src/use-menu-item.ts b/packages/hooks/use-aria-menu/src/use-menu-item.ts index 6dc46367ba..5a2357a500 100644 --- a/packages/hooks/use-aria-menu/src/use-menu-item.ts +++ b/packages/hooks/use-aria-menu/src/use-menu-item.ts @@ -144,7 +144,7 @@ export function useMenuItem( let onAction = isTrigger ? () => {} : props.onAction || data.onAction; let router = useRouter(); let performAction = (e: PressEvent) => { - if (onAction && closeOnSelect) { + if (onAction) { // @ts-ignore onAction(key); }