Avoid reconnect countdown rerenders#2763
Draft
cursor[bot] wants to merge 2 commits into
Draft
Conversation
Co-authored-by: Julius Marminge <juliusmarminge@users.noreply.github.com>
Co-authored-by: Julius Marminge <juliusmarminge@users.noreply.github.com>
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.
What Changed
Why
react-doctorflaggedWebSocketConnectionSurface.tsxbecausenowMswas updated every second but the coordinator rendersnull. That caused unnecessary React rerenders solely to update toast text. The new hook keeps the countdown timer outside React render state while preserving the visible reconnect toast countdown.React Doctor verification:
WebSocketConnectionSurface.tsxhad 1rerender-state-only-in-handlerswarning fornowMs.UI Changes
No intentional UI behavior changes. The reconnect toast still updates its countdown; React Scan recordings above show the before/after run with React Scan enabled.
Checklist
Validation:
bun fmtbun lintbun typecheckNote
Avoid re-renders during WebSocket reconnect countdown by updating toast directly
buildReconnectToasthelper inWebSocketConnectionSurface.tsxto construct the reconnect toast payload.useReconnectToastCountdownhook that runs a 1s interval to calltoastManager.updatedirectly, keeping the countdown display current without triggering component re-renders.nowMsstate and its associated effect fromWebSocketConnectionCoordinator, eliminating per-second re-renders during reconnect waits.Macroscope summarized 71777a1.