Skip to content

Conversation

@MatiPl01
Copy link
Owner

@MatiPl01 MatiPl01 commented Aug 31, 2025

Description

Fixes:

  • incorrect item widths in grid,
  • item content jumps on web while window is resized,
  • shaky scroll and scroll not reaching end until the active item is not brought back to the container bounds
  • item entering flickering

@MatiPl01 MatiPl01 self-assigned this Aug 31, 2025
@MatiPl01 MatiPl01 added enhancement New feature or request fix labels Aug 31, 2025
@vercel
Copy link

vercel bot commented Aug 31, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Preview Comments Updated (UTC)
react-native-sortables-docs Ignored Ignored Preview Sep 6, 2025 1:54am

@MatiPl01
Copy link
Owner Author

Example recording showing the last issue to fix:

Simulator.Screen.Recording.-.iPhone.16.Pro.-.2025-08-31.at.13.06.20.mp4

@MatiPl01 MatiPl01 force-pushed the fix/remaining-layout-fixes branch from 2db1cef to 3fa2f4f Compare September 6, 2025 01:50
@MatiPl01 MatiPl01 changed the title fix: Remaining layout fixes fix: A bunch of issues, like shaky scroll, invalid grid layout, added items flickering Sep 6, 2025
@MatiPl01 MatiPl01 marked this pull request as ready for review September 6, 2025 01:56
@MatiPl01 MatiPl01 requested a review from Copilot September 6, 2025 01:56
Copy link
Contributor

Copilot AI left a 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 useAnimatedStyle hooks with useDerivedValue for 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.

@MatiPl01 MatiPl01 merged commit 3b160b6 into main Sep 6, 2025
7 checks passed
@MatiPl01 MatiPl01 deleted the fix/remaining-layout-fixes branch September 6, 2025 01:58
MatiPl01 pushed a commit that referenced this pull request Sep 13, 2025
# [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))
@MatiPl01
Copy link
Owner Author

🎉 This issue has been resolved in version 1.9.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request fix released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants