⚡ Bolt: Optimize PlayerList rendering #18
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.
⚡ Performance Improvement
Optimized the
PlayerCardcomponent inPlayerList.tsxto prevent unnecessary re-renders.Why:
The
GameRoomcomponent regenerates theplayersarray viaObject.values(activeState.players)on every render (triggered by timers, chat, or other player actions). This caused allPlayerCardcomponents to re-render even if their data hadn't changed.What:
PlayerCardinReact.memo.arePlayerCardPropsEqualfunction to compare relevant player fields (id,nickname,role,is_alive, etc.).onKickprop from comparison because it's passed as a new inline function/closure on every render, but its underlying behavior (setKickTarget) is stable.Impact:
Verification:
npm run lintpassed.npm run buildpassed.PR created automatically by Jules for task 426892580248412157 started by @WeixuanZ