Skip to content

0.3.0

Choose a tag to compare

@DorianMazur DorianMazur released this 03 Sep 12:11
· 137 commits to main since this release

Highlights

  • Added SharedElement.Live and SharedElement.LiveTarget for moving a stateful native subtree between screens without remounting it. (0851796)
  • Added custom gesture-driven back transitions through useInteractiveTransition. (a656393, 0851796)
  • Added velocity-aware settle(), explicit finish() and cancel(), and UI-thread settlement from the finger's release position. (0851796)
  • Added useChoreographyBlocker() and ChoreographyScreen ready for coordinating asynchronous destination preparation. (0851796)
  • Added createSharedElementComponent() for registering ref-forwarding components without an additional wrapper. (0851796)
  • Extended useChoreographyProgress() with screen role, session phase, direction, group ID, and session ID. (0851796)
  • Added compound (screenId, groupId, id) element identities so the same ID can safely appear in multiple groups. (a656393)
  • Improved target-screen crossfading, live-card expansion, transition clipping, and interruption handling. (0851796)
  • Added a complete live-player example with persistent playback state and an interactive drag-to-dismiss handle. (0851796)

Architecture

Normal shared elements now capture a frozen ElementPresentation containing React content, style, and metrics. Live elements use react-native-teleport to move the real native subtree through the transition overlay and into the destination host.

Breaking Changes

  • Removed bitmap snapshot support introduced in 0.2.0. (85ef443)
  • Removed snapshotMode, ElementBitmap, and SharedElementSnapshotMode. (85ef443)
  • Renamed the renderer snapshot model from ElementSnapshot to ElementPresentation. (85ef443)

Native-stack's built-in swipe progress is not connected automatically. Applications can implement custom gestures with useInteractiveTransition.

Full changelog: v0.2.0...v0.3.0