Problem
SidebarMobile calls _toggleBodyListener(isOpen) inside render(), causing event listeners to be added/removed on every render. This can lead to duplicate listeners and inconsistent sidebar behavior.
Solution
Move event listener handling to lifecycle methods:
componentDidMount
componentDidUpdate (when isOpen changes)
componentWillUnmount
File
src/components/SidebarMobile/SidebarMobile.jsx
Steps to Reproduce
- Run the project
- Open sidebar in mobile view
- Toggle multiple times
- Click outside
Expected
- Sidebar closes reliably
- No duplicate event listeners