Skip to content

Commit 46c5edf

Browse files
committed
refactor(CDropdown): improve and clean-up syntax
1 parent 57913f3 commit 46c5edf

File tree

2 files changed

+24
-18
lines changed

2 files changed

+24
-18
lines changed

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

+3-5
Original file line numberDiff line numberDiff line change
@@ -156,12 +156,10 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
156156
<Component
157157
className={classNames(
158158
variant === 'nav-item' ? 'nav-item dropdown' : variant,
159-
direction === 'center'
160-
? 'dropdown-center'
161-
: direction === 'dropup-center'
162-
? 'dropup dropup-center'
163-
: direction,
164159
{
160+
'dropdown-center': direction === 'center',
161+
'dropup dropup-center': direction === 'dropup-center',
162+
direction: direction && direction !== 'center' && direction !== 'dropup-center',
165163
show: _visible,
166164
},
167165
className,

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

+21-13
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,27 @@ export const CDropdownToggle: FC<CDropdownToggleProps> = ({
7272
// We use any because Toggler can be `a` as well as `button`.
7373
// eslint-disable-next-line @typescript-eslint/no-explicit-any
7474
const Toggler = (ref?: React.Ref<any>) => {
75-
return custom && React.isValidElement(children) ? (
76-
<>
77-
{React.cloneElement(children as React.ReactElement<any>, {
78-
'aria-expanded': visible,
79-
...(!rest.disabled && { ...triggers }),
80-
ref: useForkedRef(ref, dropdownToggleRef),
81-
})}
82-
</>
83-
) : variant === 'nav-item' ? (
84-
<a href="#" {...togglerProps} ref={useForkedRef(ref, dropdownToggleRef)}>
85-
{children}
86-
</a>
87-
) : (
75+
if (custom && React.isValidElement(children)) {
76+
return (
77+
<>
78+
{React.cloneElement(children as React.ReactElement<any>, {
79+
'aria-expanded': visible,
80+
...(!rest.disabled && { ...triggers }),
81+
ref: useForkedRef(ref, dropdownToggleRef),
82+
})}
83+
</>
84+
)
85+
}
86+
87+
if (variant === 'nav-item') {
88+
return (
89+
<a href="#" {...togglerProps} ref={useForkedRef(ref, dropdownToggleRef)}>
90+
{children}
91+
</a>
92+
)
93+
}
94+
95+
return (
8896
<CButton
8997
type="button"
9098
{...togglerProps}

0 commit comments

Comments
 (0)