Skip to content

Commit a307102

Browse files
authored
fix(NavDropdown): fix align="end" not working (react-bootstrap#5878)
* Add test for data-bs-popper attrib on NavDropdown * Add data-bs-popper to dropdowns in nav bars
1 parent ff8f1d0 commit a307102

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

src/DropdownMenu.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,9 @@ const DropdownMenu: BsPrefixRefForwardingComponent<'div', DropdownMenuProps> =
188188
{...menuProps}
189189
style={style}
190190
// Bootstrap css requires this data attrib to style responsive menus.
191-
{...(alignClasses.length && { 'data-bs-popper': 'static' })}
191+
{...((alignClasses.length || isNavbar) && {
192+
'data-bs-popper': 'static',
193+
})}
192194
className={classNames(
193195
className,
194196
prefix,

test/NavDropdownSpec.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { mount } from 'enzyme';
22

33
import DropdownItem from '../src/DropdownItem';
44
import Nav from '../src/Nav';
5+
import Navbar from '../src/Navbar';
56
import NavDropdown from '../src/NavDropdown';
67

78
describe('<NavDropdown>', () => {
@@ -81,4 +82,18 @@ describe('<NavDropdown>', () => {
8182
'dark',
8283
);
8384
});
85+
86+
it('sets data-bs-popper attribute on dropdown menu', () => {
87+
const wrapper = mount(
88+
<Navbar>
89+
<NavDropdown renderMenuOnMount id="test-id" title="title">
90+
<DropdownItem>Item 1</DropdownItem>
91+
</NavDropdown>
92+
</Navbar>,
93+
);
94+
95+
wrapper
96+
.assertSingle('.dropdown-menu')
97+
.assertSingle('[data-bs-popper="static"]');
98+
});
8499
});

0 commit comments

Comments
 (0)