Skip to content

Commit 9d85b24

Browse files
authored
fix: Menu popup miss rtl cls (#423)
* fix: Menu popup miss rtl cls * test: reorder
1 parent f468451 commit 9d85b24

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

src/SubMenu/SubMenuList.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ const InternalSubMenuList = (
1111
{ className, children, ...restProps }: SubMenuListProps,
1212
ref: React.Ref<HTMLUListElement>,
1313
) => {
14-
const { prefixCls, mode } = React.useContext(MenuContext);
14+
const { prefixCls, mode, rtl } = React.useContext(MenuContext);
1515

1616
return (
1717
<ul
1818
className={classNames(
1919
prefixCls,
20+
rtl && `${prefixCls}-rtl`,
2021
`${prefixCls}-sub`,
2122
`${prefixCls}-${mode === 'inline' ? 'inline' : 'vertical'}`,
2223
className,

tests/Menu.spec.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import Menu, { MenuItem, MenuItemGroup, SubMenu, Divider } from '../src';
88

99
describe('Menu', () => {
1010
describe('should render', () => {
11-
function createMenu(props) {
11+
function createMenu(props, subKey) {
1212
return (
1313
<Menu
1414
disabledOverflow
@@ -28,13 +28,37 @@ describe('Menu', () => {
2828
5
2929
</MenuItem>
3030
</MenuItemGroup>
31-
<SubMenu title="submenu">
31+
<SubMenu key={subKey} title="submenu">
3232
<MenuItem key="6">6</MenuItem>
3333
</SubMenu>
3434
</Menu>
3535
);
3636
}
3737

38+
it('popup with rtl has correct className', () => {
39+
jest.useFakeTimers();
40+
const wrapper = mount(
41+
createMenu(
42+
{ mode: 'vertical', direction: 'rtl', openKeys: ['sub'] },
43+
'sub',
44+
),
45+
);
46+
47+
act(() => {
48+
jest.runAllTimers();
49+
wrapper.update();
50+
});
51+
52+
expect(
53+
wrapper.find('.rc-menu-submenu-popup').exists('.rc-menu-rtl'),
54+
).toBeTruthy();
55+
56+
wrapper.unmount();
57+
58+
jest.useRealTimers();
59+
jest.clearAllTimers();
60+
});
61+
3862
['vertical', 'horizontal', 'inline'].forEach(mode => {
3963
it(`${mode} menu correctly`, () => {
4064
const wrapper = mount(createMenu({ mode }));

0 commit comments

Comments
 (0)