- Add accessibility support to grabber view with VoiceOver/TalkBack actions and state descriptions. (#587 by @lodev09)
- Add
scrollingExpandsSheetoption toscrollableOptions. (#585 by @lodev09) - iOS: Add
topScrollEdgeEffectandbottomScrollEdgeEffecttoscrollableOptionsfor iOS 26+. (#595 by @lodev09)
- iOS: Fixed keyboard scroll positioning when sheet auto-expands from a smaller detent. (#592 by @lodev09)
- Android: Fixed dead state after rapid present/dismiss cycles. (#593 by @lodev09)
- iOS: Fixed position change not emitting when detent or index changed. (#584 by @lodev09)
- Android: Use RN
BackHandlerfor back press detection for reliability across Android versions. (#580 by @lodev09)
- Android:
nestedScrollingEnabledis now automatically managed whenscrollableis enabled. (#585)
- iOS: Fixed custom grabber missing tap-to-cycle-detent behavior. (#571 by @lodev09)
- Android: Fixed pull to refresh not working for short ScrollViews. (#570 by @lodev09)
- Android: Fixed first interaction with remounted nested ScrollView dragging sheet instead of scrolling. (#564 by @lodev09)
- Android: Fixed nested scroll breaking when ScrollView is conditionally removed and re-added. (#562 by @lodev09)
- iOS: Fixed touch passthrough on undimmed sheets when
dismissibleisfalse. (#548 by @isaacrowntree) - iOS: Fixed
animatedIndex/animatedDetentreporting wrong values during drag and transitions. (#558 by @lodev09) - iOS: Fixed detent updates being ignored when changed during presentation animation. (#557 by @lodev09)
- iOS: Fixed content size changes being dropped during presentation animation when using
initialDetentIndex. (#551 by @lodev09)
- iOS: Fixed incorrect detent calculations on iPad when using Stage Manager or Split View. (#550 by @lodev09)
- iOS: Fixed custom grabber not centering on device rotation. (#545 by @lodev09)
- Android: Removed unreliable
TransitionManageranimation from gravity and maxWidth updates. (#544 by @lodev09)
- iOS: Enable synchronous state update for RN 0.82+. (#505, #507 by @lodev09)
- Web: Added
detachedanddetachedOffsetprops for floating card mode. (#527 by @lodev09) - Navigation: Added missing sheet props and fixed event handler spread order. (#526 by @lodev09)
- Added
maxContentWidthprop to control the maximum width of the sheet content. (#495 by @lodev09) - Added
anchorandanchorOffsetprops for side sheet positioning. (#496, #500 by @lodev09)
- iOS: Fixed crash and blank sheet when using Reanimated exiting animations. (#493 by @lodev09)
- iOS: Fixed main thread deadlock when keyboard events fire while sheet is mounted. (#506 by @lodev09)
- iOS: Fixed thread blocking on gesture dismissal when sheet is presented in a stack. (#511 by @lodev09)
- iOS: Fixed FlashList content not rendering while dragging sheet. (#539 by @lodev09)
- Android: Fixed default background color not respecting dark mode on AppCompat-based apps. (#501 by @lodev09)
- Android: Fixed keyboard not dismissing when sheet is dragged to a non-keyboard detent position. (#513 by @lodev09)
- Android: Added guard and warning to prevent dismiss events for a sheet that is not presented. (#516 by @codydorsettlynn)
- Android: Fixed stale nested scrolling ref blocking drag after dismissing a child sheet with a ScrollView. (#523 by @lodev09)
- Android: Fixed keyboard detent not committing on scroll, causing sheet to snap back when keyboard hides. (#525 by @lodev09)
- Android: Fixed children not taking full width and height due to state wrapper assignment order. (#531 by @lodev09)
- Android: Fixed scroll drag workaround not applying for non-scrollable sheets containing a ScrollView. (#538 by @lodev09)
- Web: Fixed default background color not respecting dark mode. (#502 by @lodev09)
- iOS, Android: Fixed
autodetent height staggering on content change due to Yoga layout feedback loop. (#537 by @lodev09)
- Performance improvements across JS, iOS, and Android. (#521 by @lodev09)
- Use codegen enums for
backgroundBlur,anchor, andinsetAdjustmentprops. (#499 by @lodev09) - Replace
react-native-mapswith@lugg/mapsin examples. (#503 by @lodev09)
- Android: Fixed grabber disappearing when background color changes on stacked sheets. (#488 by @lodev09)
- iOS: Fixed content clipping when sheet content changes dynamically by clearing stale ScrollView reference. (#482 by @sbs44)
- Added web limitation note for
react-native-screensdetection withuseFocusEffectworkaround. (#480 by @lodev09)
- Web: Collapse to lowest detent when not dismissible, matching native behavior. (#479 by @lodev09)
- Web: Fixed event firing order and conditions to match native. (#478 by @lodev09)
-
Dismiss Behavior:
dismiss()now dismisses the sheet and all sheets presented on top of it. Previously, callingdismiss()on a sheet with children would only either dismiss the current sheet if it had no children or only the child sheets presented on top of it, keeping the current sheet open. Now it performs a cascade dismiss of the entire stack. Use thedismissStack()method if you need the old behavior of dismissing only child sheets. -
Remove Static Methods on Web: Static methods (
TrueSheet.present(),TrueSheet.dismiss(), etc.) are no longer supported on web. Use theuseTrueSheet()hook instead.
- Added
dismissStack()instance and static method to dismiss only sheets presented on top of the current sheet, keeping the current sheet presented. (#452, #470 by @obi-owner, @lodev09) - Added
scrollableOptionsprop with keyboard scroll handling for ScrollViews. (#442 by @lodev09) - Added bottom inset to ScrollView when
insetAdjustmentisautomatic. (#430 by @lodev09)
- iOS: Fixed sheet not auto-dismissing when nested stack is removed. (#472 by @lodev09)
- Fixed
pop,popTo,popToTopnavigation actions not dismissing sheets properly. (#471 by @lodev09) - iOS: Fixed scroll position jumping when nested sheet is dismissed with inverted FlatList. (#468 by @lucasklaassen)
- Android: Fixed present promise not resolving on resize. (c3495500 by @lodev09)
- iOS: Fixed scroll view pinning to respect content view padding/margin. (#429, #446 by @lodev09)
- iOS: Fixed footer not translating back when keyboard hides via ScrollView. (#424 by @lodev09)
- iOS: Fixed
backgroundBlurandbackgroundColornot working together. (#423 by @lodev09) - iOS: Fixed
present()called fromuseEffectnot working due to mount event not firing. (#421 by @lodev09) - iOS: Fixed sheet content becoming empty after rapidly presenting/dismissing. (#419 by @lodev09)
- Auto re-present sheet when returning from screen dismiss (modal or navigation pop). (#412 by @lodev09)
- iOS: Fixed
onWillDismissevent timing during drag dismiss. (#416 by @lodev09)
- Added overlays guide for displaying modals/dialogs on top of sheets. (#474 by @lodev09)
- Added
transformIgnorePatternsto Jest setup guide. (#458 by @lodev09) - Added troubleshooting docs for deep-linking modals. (#2d111c4f by @lodev09)
- Separated
present()andresize()methods; callingpresent()on an already-presented sheet now logs a warning instead of resizing. (#441 by @lodev09) - iOS: Refactored container to use Yoga layout via C++ state for dimensions. (#457 by @lodev09)
- Android: Refactored screen event detection to use EventDispatcherListener instead of FragmentLifecycleCallbacks. (#438 by @lodev09)
- iOS: Refactored screen unmount detection to use C++ EventDispatcher instead of RNSLifecycleListenerProtocol. (#410 by @lodev09)
- iOS: Fixed initial present failing during deeplink navigation. (#406 by @lodev09)
- iOS: Use host view window's rootViewController (7938c69 by @lodev09)
- Android: Ignore fragment events during cold start initialization (86fa7bb9 by @lodev09)
- Added
dismissAllstatic method. (#393 by @lodev09) - Android: Added grabber tap to expand/dismiss for iOS consistency. (#404 by @lodev09)
- Android: fix(android): cache content heights for dim interpolation during dismiss. (b297adb3 by @lodev09)
- Android: Fixed dim interpolation during dismiss when container is unmounted. (34bd3d40 by @lodev09)
- Web: Fixed
onWillDismissnot firing when dismissing via backdrop tap. (#405 by @lodev09) - Fixed sheet not dismissing when presenter screen is popped from navigation. (#400, #402 by @lodev09)
- Android: Fixed visual glitch when navigating away with active sheet. (#403 by @lodev09)
- iOS: Fixed position tracking for pending detent changes. (#394 by @lodev09)
- Android: Fixed keyboard and focus handling inside RN Modal. (#387 by @lodev09)
- Android: Fixed keyboard dismiss when presenting at dimmed detent.
- Improved keyboard handling for sheet presentation. (#379 by @lodev09)
- Android: Fixed
pointerEventsnot being respected in TrueSheetFooterView. - Android: Added
pointerEventsprop support to view managers. - Android: Added RootNodeKind trait for nested sheet touch handling. (#375 by @lodev09)
- Android: Fixed coordinator layout remeasure on configuration change.
- Android: Fixed footer repositioning when keyboard hides via IME action button.
- Android: Fixed eventDispatcher propagation via delegate chain for footer touch handling. (#372 by @lodev09)
- Android: Fixed keyboard handling to only apply for focused views within sheet. (#365 by @lodev09)
- Android: Fixed sheet dismissing early when container is unmounted.
- iOS: Fixed sheets dismissing properly during navigation and reload.
- iOS: Fixed keyboard offset preservation when footer resizes. (#361 by @lodev09)
- Android: Optimized findRootContainerView to return first content view.
- Android: Fixed TrueSheet rendering above React Native Modal. (#359 by @lodev09)
- Fixed initial present flag reset during recycle.
- Android: Fixed setupModalObserver to present lifecycle.
- Simplified initial presentation to only trigger on attach to window.
- Android: Fixed animated sheet dismiss with keyboard shown.
- Android: Fixed initial presentation to wait for window attachment.
- iOS: Added compile-time check for iOS 26.1+ APIs.
- Android: Added safe value for halfExpandedRatio.
- iOS: Fixed blur intensity with backgroundBlur on iOS 26.1+.
- iOS: Fixed fallback to view.backgroundColor when UIDesignRequiresCompatibility is true.
- Android: Fixed keyboard dismiss issue with backdrop. (#351 by @lodev09)
- iOS: Fixed native backgroundEffect for blur on iOS 26.1+. (#350 by @lodev09)
- Added
headerStyleandfooterStyleprops.
- Web: Fixed pointerEvents on footer container.
- Web: Added 'none' option to
stackBehaviorprop. - Web: Added shadow for web sheet.
- Fixed pointerEvents on header, footer and host view.
- iOS: Fixed initial presentation to defer until view is in window hierarchy.
- iOS: Fixed TrueSheetView being included in scroll view pinning traversal.
- Android: Fixed sheet showing briefly when navigating within a stack.
- Android: Fixed parent stacking after rn-screen dismissed.
- Android: Fixed dragging on parent sheet when child is stacked.
- Android: Improved dim tap handling for stacked sheets.
- Android: Fixed collapse to lowest detent on back press when non-dismissible.
- Android: Fixed sheet fade before hiding when rn-screen modal shows.
- Android: Fixed content clipping to rounded corners on older API levels.
- Android: Fixed collapse to lowest detent on dim tap when non-dismissible.
- Android: Fixed bottom sheet centering horizontally on rotation.
- Android: Fixed sheet from reshowing when returning from background with rn-screens.
- Android: Fixed dismiss animation on back button press.
- Android: Fixed footer positioning using onSlide for API < 30.
- Android: Fixed grabber hitbox causing touch issues.
- Android: Fixed sheet position during non-animated present.
- Android: Fixed stacked sheet translation on dismiss.
- Android: Fixed translation on initialDetentIndex present.
- Android: Fixed initial present on older android versions.
- Android: Fixed halfExpandedRatio to be between 0 and 1.
- Android: Replaced DialogFragment with CoordinatorLayout. (#344 by @lodev09)
- Android: Refactored to use BottomSheetDialogFragment. (#342 by @lodev09)
- Android: Fixed sheet stack restoration when modal dismisses.
- Android: Fixed dim view alpha animation when restoring from modal.
- Android: Improved keyboard handling and detent restoration.
- Android: Fixed target keyboard height for detent calculations.
- Android: Fixed window visibility to prevent keyboard non-focus issue.
- Android: Fixed sheet from showing when app returns from background.
- Android: Added custom dim view with smooth interpolation. (#327 by @lodev09)
- Android: Added parent translation updates when child sheet size changes.
- Android: Fixed flashing footer during initial present.
- Android: Fixed dim view hiding when RN Screen is presented.
- Android: Fixed grabber shadow by using bringToFront instead of elevation.