fix: use stored size in onResizeStop to prevent stale data #250
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.
Summary
Fix a bug where
onResizeStopwould report stale/incorrect size data due to React's batched state updates.The Problem
onResizeStopwas recalculating size fromprops.width/height, but due to React's batched state updates, these props may not have updated yet whenonResizeStopfires. This caused the callback to report stale/incorrect size data, particularly noticeable with west/north handles.This bug was identified in react-grid-layout: react-grid-layout/react-grid-layout#2224
The Fix
onResizein a newlastSizeinstance variableonResizeStopinstead of recalculating from potentially stale propslastSizealong with other internal data on resize stop and unmountChanges
lib/Resizable.js: AddlastSizetracking and use it inonResizeStop__tests__/Resizable.test.js: Add tests for the stale props scenarioTest plan