-
Notifications
You must be signed in to change notification settings - Fork 22
fix: A bunch of issues, like shaky scroll, invalid grid layout, added items flickering #463
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
Example recording showing the last issue to fix: Simulator.Screen.Recording.-.iPhone.16.Pro.-.2025-08-31.at.13.06.20.mp4 |
2db1cef to
3fa2f4f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors the animation system to improve performance and fix layout issues in the sortable grid component. The changes focus on replacing useAnimatedStyle with useDerivedValue for better performance and fixing shaky scroll behavior.
- Replaces
useAnimatedStylehooks withuseDerivedValuefor layout calculations to reduce animation overhead - Fixes grid item width calculations and scroll boundary issues
- Consolidates style handling to prevent flickering during item entering animations
Reviewed Changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/react-native-sortables/src/types/providers/shared.ts | Removes unused AnimatedStyle type and controlledDimensionsStyle property |
| packages/react-native-sortables/src/providers/shared/hooks/useTeleportedItemLayout.ts | Replaces useAnimatedStyle with useDerivedValue and updates function name |
| packages/react-native-sortables/src/providers/shared/hooks/useItemLayout.ts | Converts layout hooks to return SharedValue instead of AnimatedStyleProp |
| packages/react-native-sortables/src/providers/shared/hooks/useItemDecoration.ts | Simplifies decoration hook to return SharedValue directly |
| packages/react-native-sortables/src/providers/shared/hooks/index.ts | Updates hook exports to match renamed functions |
| packages/react-native-sortables/src/providers/shared/DragProvider.ts | Removes container measurement logic and unused imports |
| packages/react-native-sortables/src/providers/shared/CommonValuesProvider.ts | Removes controlled dimensions style logic |
| packages/react-native-sortables/src/providers/shared/AutoScrollProvider/utils.ts | Fixes scroll calculation logic by using correct bounds |
| packages/react-native-sortables/src/providers/grid/GridLayoutProvider/GridLayoutProvider.tsx | Adds timeout-based animation control for web platform |
| packages/react-native-sortables/src/components/shared/DraggableView/TeleportedItemCell.tsx | Updates to use new layout hook and prop structure |
| packages/react-native-sortables/src/components/shared/DraggableView/ItemCell.tsx | Consolidates style handling and adds shadow decoration styles |
| packages/react-native-sortables/src/components/shared/DraggableView/DraggableView.tsx | Updates to use new layout hook structure |
| packages/react-native-sortables/src/components/shared/DraggableView/ActiveItemPortal.tsx | Updates prop names to match new structure |
| packages/react-native-sortables/src/components/SortableGrid.tsx | Fixes grid item width calculation by adding column gap |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
packages/react-native-sortables/src/providers/shared/AutoScrollProvider/utils.ts
Show resolved
Hide resolved
packages/react-native-sortables/src/components/shared/DraggableView/ItemCell.tsx
Show resolved
Hide resolved
# [1.9.0](v1.8.0...v1.9.0) (2025-09-13) ### Bug Fixes * A bunch of issues, like shaky scroll, invalid grid layout, added items flickering ([#463](#463)) ([3b160b6](3b160b6)) * Active item touch start position on Android ([#462](#462)) ([7704729](7704729)) * Autoscroll exceeding bounds ([#473](#473)) ([eddd21b](eddd21b)) * Collapsible items implementation on the web ([#485](#485)) ([4d261db](4d261db)) * Collapsible items shift when size changes ([#451](#451)) ([e816b6a](e816b6a)) * Incorrect drag start position, no item size animation when teleported ([#456](#456)) ([1730fb8](1730fb8)) * Invalid builder bob config ([#475](#475)) ([11cf84a](11cf84a)) * Invalid grid layout on mount ([#461](#461)) ([a47ed72](a47ed72)) * onActiveItemDropped not being fired when item is touched quickly ([#449](#449)) ([f66d980](f66d980)) * Pre-release fixes and improvements ([#476](#476)) ([736fb7b](736fb7b)) * Prevent auto scroll from over scrolling content container ([#484](#484)) ([db586d7](db586d7)), closes [#473](#473) ### Features * Add custom shadow example to docs, clean up decoration style ([#466](#466)) ([1169928](1169928)) * Add example app build check CIs ([#480](#480)) ([5ad420c](5ad420c)) * Add style property to the handle component ([#477](#477)) ([28c9099](28c9099)) * Better collapsible auto-scroll behavior ([#457](#457)) ([2d24b14](2d24b14)), closes [#444](#444) * Collapsible items support ([#444](#444)) ([66c03b6](66c03b6)) * Data provider ([#472](#472)) ([5dc34b6](5dc34b6)) * Improved teleported items behavior ([#452](#452)) ([72dadef](72dadef)) * Make layout update in sync with positions change on grid columns change ([#441](#441)) ([ef37d8c](ef37d8c)) * New auto scroll implementation ([#454](#454)) ([c4facec](c4facec)), closes [#285](#285) [#453](#453) [#285](#285) ### Performance Improvements * Optimize rerenders caused by inlined callbacks, clean up drag state management ([#474](#474)) ([f5e3c89](f5e3c89)) * Reduce the number of layout calculations ([#442](#442)) ([f9c9875](f9c9875))
|
🎉 This issue has been resolved in version 1.9.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Description
Fixes: