8000 refactor(CDropdown): improve and clean-up syntax · lunaluna2021/coreui-react@46c5edf · GitHub
[go: up one dir, main page]

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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

Lines changed: 3 additions & 5 deletions
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

Lines changed: 21 additions & 13 deletions
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)
0