Skip to content

Commit 995b9bd

Browse files
committed
fix: remove rounded corners when dropdown is in <CInputGroup>
1 parent e66c3c9 commit 995b9bd

File tree

2 files changed

+18
-19
lines changed

2 files changed

+18
-19
lines changed

src/components/dropdown/CDropdown.tsx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ export interface CDropdownProps extends HTMLAttributes<HTMLDivElement | HTMLLIEl
6363
*/
6464
popper?: boolean
6565
/**
66-
* Set the dropdown variant to an btn-group, dropdown, and nav-item. [docs]
66+
* Set the dropdown variant to an btn-group, dropdown, input-group, and nav-item. [docs]
6767
*/
68-
variant?: 'btn-group' | 'dropdown' | 'nav-item'
68+
variant?: 'btn-group' | 'dropdown' | 'input-group' |'nav-item'
6969
/**
7070
* Toggle the visibility of dropdown menu component. [docs]
7171
*
@@ -158,9 +158,14 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
158158
return popper ? (
159159
<CDropdownContext.Provider value={contextValues}>
160160
<Manager>
161-
<Component className={_className} {...rest} ref={forkedRef}>
162-
{children}
163-
</Component>
161+
{/* TODO: find solution how to handle click outside */}
162+
{variant === 'input-group' ? (
163+
<>{ children }</>
164+
) : (
165+
<Component className={_className} {...rest} ref={forkedRef}>
166+
{children}
167+
</Component>
168+
)}
164169
</Manager>
165170
</CDropdownContext.Provider>
166171
) : (
@@ -182,7 +187,7 @@ CDropdown.propTypes = {
182187
direction: PropTypes.oneOf(['dropup', 'dropend', 'dropstart']),
183188
placement: placementPropType,
184189
popper: PropTypes.bool,
185-
variant: PropTypes.oneOf(['btn-group', 'dropdown', 'nav-item']),
190+
variant: PropTypes.oneOf(['btn-group', 'dropdown', 'input-group', 'nav-item']),
186191
visible: PropTypes.bool,
187192
}
188193

src/components/dropdown/CDropdownMenu.tsx

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import PropTypes from "prop-types";
1+
import PropTypes from 'prop-types'
22
import React, { ElementType, FC, HTMLAttributes, useContext } from 'react'
33
import classNames from 'classnames'
44
import { Popper, PopperChildrenProps } from 'react-popper'
@@ -72,14 +72,15 @@ export const CDropdownMenu: FC<CDropdownMenuProps> = ({
7272
className,
7373
)
7474

75-
const dropdownMenuComponent = (style?: React.CSSProperties, ref?: React.Ref<any>) => {
75+
const dropdownMenuComponent = (style?: React.CSSProperties, ref?: React.Ref<any>, ) => {
7676
return (
7777
<Component
7878
className={_className}
7979
ref={ref}
8080
style={style}
8181
role="menu"
8282
aria-hidden={!visible}
83+
// isReferenceHidden={false}
8384
{...(!popper && { 'data-coreui-popper': 'static' })}
8485
{...rest}
8586
>
@@ -95,17 +96,10 @@ export const CDropdownMenu: FC<CDropdownMenuProps> = ({
9596
)
9697
}
9798

98-
return (
99-
<>
100-
{visible &&
101-
(popper ? (
102-
<Popper placement={_placement}>
103-
{({ ref, style }) => dropdownMenuComponent(style, ref)}
104-
</Popper>
105-
) : (
106-
dropdownMenuComponent()
107-
))}
108-
</>
99+
return popper && visible ? (
100+
<Popper placement={_placement}>{({ ref, style }) => dropdownMenuComponent(style, ref)}</Popper>
101+
) : (
102+
dropdownMenuComponent()
109103
)
110104
}
111105

0 commit comments

Comments
 (0)