Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ es
coverage
yarn.lock
package-lock.json
.vscode

# dumi
.dumi/tmp
Expand Down
6 changes: 3 additions & 3 deletions docs/examples/arrow.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Menu, { Item as MenuItem, Divider } from 'rc-menu';
import '../../assets/index.less';
import Dropdown from '@rc-component/dropdown';
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

请验证新的依赖包版本。

导入路径从 'rc-dropdown' 更改为 '@rc-component/dropdown',需要确保新包的兼容性和稳定性。


🏁 Script executed:

#!/bin/bash
# 检查新包的版本信息和依赖关系
npm info @rc-component/dropdown

# 检查是否有未解决的问题
gh api graphql -f query='
{
  repository(owner: "react-component", name: "dropdown") {
    issues(states: OPEN, first: 5) {
      nodes {
        title
        url
        labels(first: 5) {
          nodes {
            name
          }
        }
      }
    }
  }
}'

Length of output: 1457


依赖包校验失败,请确认包名称和发布状态

经过使用 npm info @rc-component/dropdown 的检查,发现该包未在 npm 注册表中找到(返回 E404 错误),这表明包名称可能存在问题或尚未发布。同时,通过 GitHub 查询看到仓库中的相关 open issues,但这并不能证明该包已正确发布。请确认以下几点:

  • 确认依赖包名称是否正确,是否应该继续使用 '@rc-component/dropdown' 或恢复为旧的 'rc-dropdown'
  • 如果包名称没有问题,请检查 npm 发布流程,确保新版包已经发布到注册表中。
  • 若需要使用 GitHub 上的资源,请调整导入路径和相关依赖管理配置。

import Menu, { Divider, Item as MenuItem } from '@rc-component/menu';
import React from 'react';
import Dropdown from 'rc-dropdown';
import '../../assets/index.less';

function onSelect({ key }) {
console.log(`${key} selected`);
Expand Down
14 changes: 7 additions & 7 deletions docs/examples/context-menu.jsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import Menu, { Item as MenuItem } from 'rc-menu'
import '../../assets/index.less'
import React from 'react'
import Dropdown from 'rc-dropdown'
import Dropdown from '@rc-component/dropdown';
import Menu, { Item as MenuItem } from '@rc-component/menu';
import React from 'react';
import '../../assets/index.less';

function ContextMenu() {
const menu = (
<Menu style={{ width: 140 }}>
<MenuItem key="1">one</MenuItem>
<MenuItem key="2">two</MenuItem>
</Menu>
)
);

return (
<Dropdown
Expand All @@ -29,7 +29,7 @@ function ContextMenu() {
Right click me!
</div>
</Dropdown>
)
);
}

export default ContextMenu
export default ContextMenu;
28 changes: 14 additions & 14 deletions docs/examples/dropdown-menu-width.jsx
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
import Menu, { Item as MenuItem } from 'rc-menu'
import '../../assets/index.less'
import React, { PureComponent } from 'react'
import Dropdown from 'rc-dropdown'
import Dropdown from '@rc-component/dropdown';
import Menu, { Item as MenuItem } from '@rc-component/menu';
import React, { PureComponent } from 'react';
import '../../assets/index.less';

class Example extends PureComponent {
state = { longList: false }
state = { longList: false };

short = () => {
this.setState({ longList: false })
}
this.setState({ longList: false });
};

long = () => {
this.setState({ longList: true })
}
this.setState({ longList: true });
};

render() {
const menuItems = [
<MenuItem key="1">1st item</MenuItem>,
<MenuItem key="2">2nd item</MenuItem>,
]
];

if (this.state.longList) {
menuItems.push(<MenuItem key="3">3rd LONG SUPER LONG item</MenuItem>)
menuItems.push(<MenuItem key="3">3rd LONG SUPER LONG item</MenuItem>);
}
const menu = <Menu>{menuItems}</Menu>
const menu = <Menu>{menuItems}</Menu>;
return (
<div>
<Dropdown overlay={menu}>
Expand All @@ -32,8 +32,8 @@ class Example extends PureComponent {
<button onClick={this.long}>Long List</button>
<button onClick={this.short}>Short List</button>
</div>
)
);
}
}

export default Example
export default Example;
36 changes: 18 additions & 18 deletions docs/examples/multiple.jsx
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
import Menu, { Item as MenuItem, Divider } from 'rc-menu'
import '../../assets/index.less'
import React, { Component } from 'react'
import Dropdown from 'rc-dropdown'
import Dropdown from '@rc-component/dropdown';
import Menu, { Divider, Item as MenuItem } from '@rc-component/menu';
import React, { Component } from 'react';
import '../../assets/index.less';

class Test extends Component {
state = {
visible: false,
}
};

onVisibleChange = visible => {
console.log('visible', visible)
onVisibleChange = (visible) => {
console.log('visible', visible);
this.setState({
visible,
})
}
});
};

selected = []
selected = [];

saveSelected = ({ selectedKeys }) => {
this.selected = selectedKeys
}
this.selected = selectedKeys;
};

confirm = () => {
console.log(this.selected)
console.log(this.selected);
this.setState({
visible: false,
})
}
});
};

render() {
const menu = (
Expand All @@ -52,7 +52,7 @@ class Test extends Component {
</button>
</MenuItem>
</Menu>
)
);

return (
<Dropdown
Expand All @@ -65,8 +65,8 @@ class Test extends Component {
>
<button>open</button>
</Dropdown>
)
);
}
}

export default Test
export default Test;
16 changes: 8 additions & 8 deletions docs/examples/overlay-callback.jsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import Menu, { Item as MenuItem, Divider } from 'rc-menu'
import '../../assets/index.less'
import React from 'react'
import Dropdown from 'rc-dropdown'
import Dropdown from '@rc-component/dropdown';
import Menu, { Divider, Item as MenuItem } from '@rc-component/menu';
import React from 'react';
import '../../assets/index.less';

function onSelect({ key }) {
console.log(`${key} selected`)
console.log(`${key} selected`);
}

function onVisibleChange(visible) {
console.log(visible)
console.log(visible);
}

const menuCallback = () => (
Expand All @@ -18,7 +18,7 @@ const menuCallback = () => (
<Divider />
<MenuItem key="2">two</MenuItem>
</Menu>
)
);

export default function OverlayCallback() {
return (
Expand All @@ -35,5 +35,5 @@ export default function OverlayCallback() {
</Dropdown>
</div>
</div>
)
);
}
16 changes: 8 additions & 8 deletions docs/examples/simple.jsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
/* eslint-disable no-console,react/button-has-type */
import Menu, { Item as MenuItem, Divider } from 'rc-menu'
import '../../assets/index.less'
import React from 'react'
import Dropdown from 'rc-dropdown'
import Dropdown from '@rc-component/dropdown';
import Menu, { Divider, Item as MenuItem } from '@rc-component/menu';
import React from 'react';
import '../../assets/index.less';

function onSelect({ key }) {
console.log(`${key} selected`)
console.log(`${key} selected`);
}

function onVisibleChange(visible) {
console.log(visible)
console.log(visible);
}

const menu = (
Expand All @@ -19,7 +19,7 @@ const menu = (
<Divider />
<MenuItem key="2">two</MenuItem>
</Menu>
)
);

export default function Simple() {
return (
Expand All @@ -37,5 +37,5 @@ export default function Simple() {
</Dropdown>
</div>
</div>
)
);
}
21 changes: 10 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rc-dropdown",
"version": "4.2.1",
"name": "@rc-component/dropdown",
"version": "1.0.0",
"description": "dropdown ui component for react",
"keywords": [
"react",
Expand Down Expand Up @@ -33,7 +33,7 @@
"lint": "eslint src/ docs/examples/ --ext .tsx,.ts,.jsx,.js",
"now-build": "npm run build",
"prepare": "husky install && dumi setup",
"prepublishOnly": "npm run compile && np --no-cleanup --yolo --no-publish",
"prepublishOnly": "npm run compile && rc-np",
"start": "dumi dev",
"test": "rc-test"
},
Expand All @@ -44,13 +44,14 @@
]
},
"dependencies": {
"@babel/runtime": "^7.18.3",
"@rc-component/trigger": "^2.0.0",
"classnames": "^2.2.6",
"rc-util": "^5.44.1"
"@rc-component/trigger": "^3.0.0",
"@rc-component/util": "^1.2.1",
"classnames": "^2.2.6"
},
"devDependencies": {
"@rc-component/father-plugin": "^1.0.0",
"@rc-component/father-plugin": "^2.0.2",
"@rc-component/np": "^1.0.3",
"@rc-component/resize-observer": "^1.0.0",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^14.0.0",
"@types/classnames": "^2.2.6",
Expand All @@ -69,10 +70,8 @@
"jquery": "^3.3.1",
"less": "^4.1.1",
"lint-staged": "^13.2.1",
"np": "^6.0.0",
"prettier": "^2.8.7",
"rc-menu": "^9.5.2",
"rc-resize-observer": "^1.4.0",
"@rc-component/menu": "^1.0.0",
"rc-test": "^7.0.14",
"react": "^18.0.0",
"react-dom": "^18.0.0",
Expand Down
8 changes: 5 additions & 3 deletions src/Dropdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
AnimationType,
BuildInPlacements,
} from '@rc-component/trigger/lib/interface';
import { composeRef, getNodeRef, supportRef } from '@rc-component/util/lib/ref';
import classNames from 'classnames';
import { composeRef, getNodeRef, supportRef } from 'rc-util/lib/ref';
import React from 'react';
import useAccessibility from './hooks/useAccessibility';
import Overlay from './Overlay';
Expand Down Expand Up @@ -71,6 +71,9 @@

const [triggerVisible, setTriggerVisible] = React.useState<boolean>();
const mergedVisible = 'visible' in props ? visible : triggerVisible;
const mergedMotionName = animation
? `${prefixCls}-${animation}`

Check warning on line 75 in src/Dropdown.tsx

View check run for this annotation

Codecov / codecov/patch

src/Dropdown.tsx#L75

Added line #L75 was not covered by tests
: transitionName;

const triggerRef = React.useRef(null);
const overlayRef = React.useRef(null);
Expand Down Expand Up @@ -162,8 +165,7 @@
hideAction={triggerHideAction}
popupPlacement={placement}
popupAlign={align}
popupTransitionName={transitionName}
popupAnimation={animation}
popupMotion={{ motionName: mergedMotionName }}
popupVisible={mergedVisible}
stretch={getMinOverlayWidthMatchTrigger() ? 'minWidth' : ''}
popup={getMenuElementOrLambda()}
Expand Down
2 changes: 1 addition & 1 deletion src/Overlay.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { composeRef, getNodeRef, supportRef } from 'rc-util/lib/ref';
import { composeRef, getNodeRef, supportRef } from '@rc-component/util/lib/ref';
import React, { forwardRef, useMemo } from 'react';
import type { DropdownProps } from './Dropdown';

Expand Down
10 changes: 5 additions & 5 deletions src/hooks/useAccessibility.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import KeyCode from "rc-util/lib/KeyCode";
import raf from "rc-util/lib/raf";
import * as React from "react";
import KeyCode from '@rc-component/util/lib/KeyCode';
import raf from '@rc-component/util/lib/raf';
import * as React from 'react';

const { ESC, TAB } = KeyCode;

Expand Down Expand Up @@ -60,13 +60,13 @@ export default function useAccessibility({

React.useEffect(() => {
if (visible) {
window.addEventListener("keydown", handleKeyDown);
window.addEventListener('keydown', handleKeyDown);
if (autoFocus) {
// FIXME: hack with raf
raf(focusMenu, 3);
}
return () => {
window.removeEventListener("keydown", handleKeyDown);
window.removeEventListener('keydown', handleKeyDown);
focusMenuRef.current = false;
};
}
Expand Down
Loading