Skip to content

v0.17.0

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Oct 15:19
978cdf9

Overview

Changes

  • Added continuous gesture handoff between sheets and nested scrollables through scrollableNegotiation, with none, initial, and handoff modes configurable independently for expansion and collapse. The default is { expand: 'handoff', collapse: 'initial' }, allowing an upward drag to expand the sheet and continue scrolling without lifting. Replace deprecated disableScrollableNegotiation={true} with scrollableNegotiation="none".
  • Added percentage detents, such as '45%' and '100%', resolved against the available sheet height and updated automatically when the layout changes.
  • Added validation for detents and index. Empty detent arrays, invalid detent values, and noninteger or out-of-range indices now throw descriptive JavaScript errors. When shortening detents, update index in the same render to keep it within range.
  • Added Android-only onCloseRequest to ModalBottomSheet for system Back, committed predictive Back gestures, and physical-keyboard Escape. The callback reports the request; the application controls whether and how the sheet closes.
  • Fixed sheet dragging from nonscrollable views drawn over scrollable content, including when the underlying content is scrolled or scrollableNegotiation="none" is set.
  • Fixed 'content'-detent sizing when sheet children have a positive zIndex.
  • Fixed content being sized to the full available height when the tallest detent is a fixed height or percentage. Content now fits that tallest detent, capped at the available height, allowing scrollables to reach their last items and keeping pinned footers within view.
  • Fixed Android sheets ignoring an index update that selects a detent added in the same render.
  • Fixed unnecessary CPU usage on Android while BottomSheet or ModalBottomSheet remained mounted, even when closed or idle.
  • Fixed Android native overlays bypassing React Native’s BackHandler when forwarding back events to the application.
  • Fixed Android sheets becoming invisible or unresponsive with a fully transparent scrim.
  • Fixed repeated scrim taps restarting an Android sheet’s closing animation and emitting duplicate onIndexChange events.
  • Fixed Android scrim taps also triggering react-native-gesture-handler buttons underneath, including buttons in a sheet below a stacked modal.
  • Fixed an Android Fabric mounting error that could leave the application blank and unresponsive when repeatedly opening and closing sheets.
  • Fixed a Kotlin plugin conflict when building with Android Gradle Plugin 9’s built-in Kotlin support.
  • Fixed iOS sheet drags starting on a handle or header being incorrectly treated as gestures on a nested scrollable.
  • Fixed iOS sheets ignoring scrollableNegotiation="none" or the deprecated disableScrollableNegotiation on initial mount.
  • Fixed an iOS crash when mounting a sheet with a custom surface on React Native 0.87.
  • Fixed recycled iOS sheets retaining a previous sheet’s extendUnderStatusBar setting.