Skip to content

Commit f941569

Browse files
authored
refactor: use rc-util getNodeRef (#238)
1 parent 57f1b30 commit f941569

File tree

3 files changed

+16
-15
lines changed

3 files changed

+16
-15
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"@babel/runtime": "^7.18.3",
4848
"@rc-component/trigger": "^2.0.0",
4949
"classnames": "^2.2.6",
50-
"rc-util": "^5.17.0"
50+
"rc-util": "^5.44.1"
5151
},
5252
"devDependencies": {
5353
"@rc-component/father-plugin": "^1.0.0",

src/Dropdown.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ import type {
77
BuildInPlacements,
88
} from '@rc-component/trigger/lib/interface';
99
import classNames from 'classnames';
10-
import { composeRef, supportRef } from 'rc-util/lib/ref';
11-
import type { ReactElement } from 'react';
10+
import { composeRef, getNodeRef, supportRef } from 'rc-util/lib/ref';
1211
import React from 'react';
1312
import useAccessibility from './hooks/useAccessibility';
1413
import Overlay from './Overlay';
@@ -139,10 +138,7 @@ function Dropdown(props: DropdownProps, ref) {
139138
mergedVisible && getOpenClassName(),
140139
),
141140
ref: supportRef(children)
142-
? composeRef(
143-
childRef,
144-
(children as ReactElement & { ref: React.Ref<HTMLElement> }).ref,
145-
)
141+
? composeRef(childRef, getNodeRef(children))
146142
: undefined,
147143
});
148144

src/Overlay.tsx

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
import React, { forwardRef, ReactElement, useMemo } from 'react';
1+
import { composeRef, getNodeRef, supportRef } from 'rc-util/lib/ref';
2+
import React, { forwardRef, useMemo } from 'react';
23
import type { DropdownProps } from './Dropdown';
3-
import { composeRef, supportRef } from 'rc-util/lib/ref';
44

5-
export type OverlayProps = Pick<DropdownProps, 'overlay' | 'arrow' | 'prefixCls'>
5+
export type OverlayProps = Pick<
6+
DropdownProps,
7+
'overlay' | 'arrow' | 'prefixCls'
8+
>;
69

710
const Overlay = forwardRef<HTMLElement, OverlayProps>((props, ref) => {
8-
const {overlay, arrow, prefixCls} = props;
11+
const { overlay, arrow, prefixCls } = props;
912

1013
const overlayNode = useMemo(() => {
1114
let overlayElement: React.ReactElement;
@@ -17,14 +20,16 @@ const Overlay = forwardRef<HTMLElement, OverlayProps>((props, ref) => {
1720
return overlayElement;
1821
}, [overlay]);
1922

20-
const composedRef = composeRef(ref, (overlayNode as ReactElement & {ref: React.Ref<HTMLElement>})?.ref);
23+
const composedRef = composeRef(ref, getNodeRef(overlayNode));
2124

2225
return (
2326
<>
2427
{arrow && <div className={`${prefixCls}-arrow`} />}
25-
{React.cloneElement(overlayNode, { ref: supportRef(overlayNode) ? composedRef : undefined })}
28+
{React.cloneElement(overlayNode, {
29+
ref: supportRef(overlayNode) ? composedRef : undefined,
30+
})}
2631
</>
27-
)
32+
);
2833
});
2934

30-
export default Overlay;
35+
export default Overlay;

0 commit comments

Comments
 (0)