Optimize PageLayout resize performance with separate throttle/debounce strategy #7372
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.
Adds three performance optimizations to PageLayout resize operations to reduce layout thrashing and improve perceived performance during viewport changes.
Changelog
Changed
Separated resize update strategies in
usePaneWidth.ts:--pane-max-widthimmediately for smooth visual feedbackExtracted resize timing constants to module level:
RESIZE_THROTTLE_MS = 16for CSS-only updatesRESIZE_DEBOUNCE_MS = 150for expensive operationsEnhanced cleanup:
Note: Smart breakpoint detection (only calling
getComputedStyle()when crossing 1280px) was already implemented correctly. Will-change cleanup on rAF cancel was verified working as designed.Rollout strategy
Performance optimization with no API changes. Existing behavior preserved, just more efficient.
Testing & Reviewing
All existing tests pass (43 usePaneWidth + 17 PageLayout). The dual strategy can be observed by:
Merge checklist
Original prompt
This pull request was created from Copilot chat.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.