fix: use server URL instead of full server object in useSubscriptions dependency#7096
Open
deepak0x wants to merge 1 commit intoRocketChat:developfrom
Open
fix: use server URL instead of full server object in useSubscriptions dependency#7096deepak0x wants to merge 1 commit intoRocketChat:developfrom
deepak0x wants to merge 1 commit intoRocketChat:developfrom
Conversation
…tate changes Select only the server URL string instead of the entire server Redux object in useSubscriptions hook dependency array, avoiding spurious useEffect fires on every connection lifecycle transition (connecting/loading state changes). Closes RocketChat#7093
Contributor
WalkthroughThe Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
useSubscriptions.tswas selecting the entireserverRedux object and using it as auseEffectdependency. Redux reducers return a new object reference on every dispatch — even when onlyconnectingorloadingfields change — so the effect re-ran on every server connection lifecycle transition, not just when the actual server URL changed.Each spurious fire called
setLoading(true)(blanking the rooms list), unsubscribed the existing WatermelonDB observable, and created a brand new one. On a slow or unstable network, this causes the rooms list to flicker repeatedly.The fix selects only
state.server.server(a string) instead ofstate.server(an object). Strings are compared by value, so the effect now only fires when the server URL actually changes. This is the same pattern used throughout the rest of the codebase.Issue(s)
Closes #7093
Screenshots
N/A — this is a behavioral fix, no UI changes.
Types of changes
Checklist
Summary by CodeRabbit