Fix: Prevent Multiple Comment API Requests When Switching Tabs #590
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



Issue: ResearchHub/issues#699
What?
When switching between tabs (Reviews, Conversation, Bounties) on the work details page, multiple
/commentsAPI requests were being sent unnecessarily. This caused:Why?
The
handleTabChangecallback inWorkDocumentcomponent was not memoized withuseCallback. This caused the function reference to change on every render, which triggered theuseEffectinWorkTabsthat watchesonTabChangein its dependency array.Sequence of events:
handleTabChangeis called, updatingactiveTabstateactiveTabhandleTabChangeis recreated (new function reference)WorkTabsreceives newonTabChangeprop referenceuseEffectinWorkTabstriggers becauseonTabChangechangedHow?
Wrapped
handleTabChangeinuseCallbackwith an empty dependency array to maintain a stable function reference across re-renders.