Skip to content

Fix duplicate body event listeners by moving logic from render to lifecycle methods #8148

@priyapathak39

Description

@priyapathak39

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

  1. Run the project
  2. Open sidebar in mobile view
  3. Toggle multiple times
  4. Click outside

Expected

  • Sidebar closes reliably
  • No duplicate event listeners

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions