Skip to content

Commit ff87a23

Browse files
committed
refactor: update package name and forward ref implementation
1 parent 94b0130 commit ff87a23

2 files changed

Lines changed: 27 additions & 25 deletions

File tree

README.md

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
1-
# rc-dropdown
1+
# @rc-component/dropdown
22

3-
react dropdown component
3+
react dropdown component.
44

5-
[![NPM version][npm-image]][npm-url] [![build status][travis-image]][travis-url] [![Test coverage][coveralls-image]][coveralls-url] [![Dependencies][david-image]][david-url] [![DevDependencies][david-dev-image]][david-dev-url] [![npm download][download-image]][download-url] [![bundle size][bundlephobia-image]][bundlephobia-url] [![dumi][dumi-image]][dumi-url]
5+
[![NPM version][npm-image]][npm-url] [![npm download][download-image]][download-url] [![build status][github-actions-image]][github-actions-url] [![Codecov][codecov-image]][codecov-url] [![bundle size][bundlephobia-image]][bundlephobia-url] [![dumi][dumi-image]][dumi-url]
66

7-
[npm-image]: http://img.shields.io/npm/v/rc-dropdown.svg?style=flat-square
8-
[npm-url]: http://npmjs.org/package/rc-dropdown
9-
[travis-image]: https://img.shields.io/travis/react-component/dropdown.svg?style=flat-square
10-
[travis-url]: https://travis-ci.org/react-component/dropdown
11-
[coveralls-image]: https://img.shields.io/coveralls/react-component/dropdown.svg?style=flat-square
12-
[coveralls-url]: https://coveralls.io/r/react-component/dropdown?branch=master
7+
[npm-image]: https://img.shields.io/npm/v/@rc-component/dropdown.svg?style=flat-square
8+
[npm-url]: https://npmjs.org/package/@rc-component/dropdown
9+
[travis-image]: https://img.shields.io/travis/react-component/dropdown/master?style=flat-square
10+
[travis-url]: https://travis-ci.com/react-component/dropdown
11+
[github-actions-image]: https://github.com/react-component/dropdown/actions/workflows/ci.yml/badge.svg
12+
[github-actions-url]: https://github.com/react-component/dropdown/actions/workflows/ci.yml
13+
[codecov-image]: https://img.shields.io/codecov/c/github/react-component/dropdown/master.svg?style=flat-square
14+
[codecov-url]: https://app.codecov.io/gh/react-component/dropdown
1315
[david-url]: https://david-dm.org/react-component/dropdown
1416
[david-image]: https://david-dm.org/react-component/dropdown/status.svg?style=flat-square
1517
[david-dev-url]: https://david-dm.org/react-component/dropdown?type=dev
1618
[david-dev-image]: https://david-dm.org/react-component/dropdown/dev-status.svg?style=flat-square
17-
[download-image]: https://img.shields.io/npm/dm/rc-dropdown.svg?style=flat-square
18-
[download-url]: https://npmjs.org/package/rc-dropdown
19-
[bundlephobia-url]: https://bundlephobia.com/result?p=rc-dropdown
20-
[bundlephobia-image]: https://badgen.net/bundlephobia/minzip/rc-dropdown
21-
[dumi-image]: https://img.shields.io/badge/docs%20by-dumi-blue?style=flat-square
19+
[download-image]: https://img.shields.io/npm/dm/@rc-component/dropdown.svg?style=flat-square
20+
[download-url]: https://npmjs.org/package/@rc-component/dropdown
21+
[bundlephobia-url]: https://bundlephobia.com/package/@rc-component/dropdown
22+
[bundlephobia-image]: https://badgen.net/bundlephobia/minzip/@rc-component/dropdown
2223
[dumi-url]: https://github.com/umijs/dumi
24+
[dumi-image]: https://img.shields.io/badge/docs%20by-dumi-blue?style=flat-square
2325

2426
## Screenshot
2527

@@ -31,12 +33,12 @@ online example: http://react-component.github.io/dropdown/examples/
3133

3234
## install
3335

34-
[![rc-dropdown](https://nodei.co/npm/rc-dropdown.png)](https://npmjs.org/package/rc-dropdown)
36+
[![@rc-component/dropdown](https://nodei.co/npm/@rc-component/dropdown.png)](https://npmjs.org/package/@rc-component/dropdown)
3537

3638
## Usage
3739

3840
```js
39-
var Dropdown = require('rc-dropdown');
41+
var Dropdown = require('@rc-component/dropdown');
4042
// use dropdown
4143
```
4244

@@ -161,4 +163,4 @@ open coverage/ dir
161163

162164
## License
163165

164-
rc-dropdown is released under the MIT license.
166+
@rc-component/dropdown is released under the MIT license.

src/Dropdown.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { TriggerProps } from '@rc-component/trigger';
1+
import type { TriggerProps, TriggerRef } from '@rc-component/trigger';
22
import Trigger from '@rc-component/trigger';
33
import type {
44
ActionType,
@@ -46,7 +46,7 @@ export interface DropdownProps
4646
autoFocus?: boolean;
4747
}
4848

49-
function Dropdown(props: DropdownProps, ref) {
49+
const Dropdown = React.forwardRef<TriggerRef, DropdownProps>((props, ref) => {
5050
const {
5151
arrow = false,
5252
prefixCls = 'rc-dropdown',
@@ -135,13 +135,13 @@ function Dropdown(props: DropdownProps, ref) {
135135
return `${prefixCls}-open`;
136136
};
137137

138-
const childrenNode = React.cloneElement(children, {
138+
const childrenNode = React.cloneElement(children as React.ReactElement, {
139139
className: clsx(
140-
children.props?.className,
140+
(children as React.ReactElement).props?.className,
141141
mergedVisible && getOpenClassName(),
142142
),
143143
ref: supportRef(children)
144-
? composeRef(childRef, getNodeRef(children))
144+
? composeRef(childRef, getNodeRef(children as React.ReactElement))
145145
: undefined,
146146
});
147147

@@ -169,13 +169,13 @@ function Dropdown(props: DropdownProps, ref) {
169169
popupVisible={mergedVisible}
170170
stretch={getMinOverlayWidthMatchTrigger() ? 'minWidth' : ''}
171171
popup={getMenuElementOrLambda()}
172-
onPopupVisibleChange={handleVisibleChange}
172+
onOpenChange={handleVisibleChange}
173173
onPopupClick={onClick}
174174
getPopupContainer={getPopupContainer}
175175
>
176176
{childrenNode}
177177
</Trigger>
178178
);
179-
}
179+
});
180180

181-
export default React.forwardRef(Dropdown);
181+
export default Dropdown;

0 commit comments

Comments
 (0)