Skip to content

Commit 3f87b21

Browse files
committed
fix(CDropdown): emit onClick event when click on CDropdownItem
1 parent 91ced09 commit 3f87b21

File tree

2 files changed

+10
-12
lines changed

2 files changed

+10
-12
lines changed

packages/coreui-react/src/components/dropdown/CDropdownItem.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export const CDropdownItem = forwardRef<HTMLButtonElement | HTMLAnchorElement, C
2121
const _className = classNames('dropdown-item', className)
2222

2323
return (
24-
<CLink component={component} {...rest} className={_className} ref={ref}>
24+
<CLink className={_className} component={component} {...rest} ref={ref}>
2525
{children}
2626
</CLink>
2727
)

packages/coreui-react/src/components/dropdown/CDropdownMenu.tsx

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,14 @@ export const CDropdownMenu: FC<CDropdownMenuProps> = ({
7373
if (dropdownToggleRef && dropdownToggleRef.current.contains(event.target as HTMLElement)) {
7474
return
7575
}
76-
if (autoClose === true) {
77-
setVisible(false)
78-
return
79-
}
80-
if (autoClose === 'inside' && dropdownMenuRef.current?.contains(event.target as HTMLElement)) {
81-
setVisible(false)
82-
return
83-
}
76+
8477
if (
85-
autoClose === 'outside' &&
86-
!dropdownMenuRef.current?.contains(event.target as HTMLElement)
78+
autoClose === true ||
79+
(autoClose === 'inside' && dropdownMenuRef.current?.contains(event.target as HTMLElement)) ||
80+
(autoClose === 'outside' && !dropdownMenuRef.current?.contains(event.target as HTMLElement))
8781
) {
88-
setVisible(false)
82+
setTimeout(() => setVisible(false), 1)
83+
return
8984
}
9085
}
9186

@@ -94,12 +89,15 @@ export const CDropdownMenu: FC<CDropdownMenuProps> = ({
9489
if (direction === 'dropup') {
9590
_placement = 'top-start'
9691
}
92+
9793
if (direction === 'dropend') {
9894
_placement = 'right-start'
9995
}
96+
10097
if (direction === 'dropstart') {
10198
_placement = 'left-start'
10299
}
100+
103101
if (alignment === 'end') {
104102
_placement = 'bottom-end'
105103
}

0 commit comments

Comments
 (0)