@lodev09/react-native-true-sheet 4.0.0-beta.20 → 4.0.0-beta.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/android/build.gradle +1 -0
  2. package/android/proguard-rules.pro +3 -0
  3. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +1 -0
  4. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +5 -0
  5. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +9 -0
  6. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +5 -0
  7. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetBehavior.kt +126 -0
  8. package/ios/TrueSheetView.mm +63 -1
  9. package/lib/module/TrueSheet.js +3 -2
  10. package/lib/module/TrueSheet.js.map +1 -1
  11. package/lib/module/TrueSheet.web.js +41 -40
  12. package/lib/module/TrueSheet.web.js.map +1 -1
  13. package/lib/module/fabric/TrueSheetViewNativeComponent.ts +1 -0
  14. package/lib/module/web/vaul/constants.js +5 -0
  15. package/lib/module/web/vaul/constants.js.map +1 -1
  16. package/lib/module/web/vaul/context.js +4 -0
  17. package/lib/module/web/vaul/context.js.map +1 -1
  18. package/lib/module/web/vaul/index.js +21 -7
  19. package/lib/module/web/vaul/index.js.map +1 -1
  20. package/lib/module/web/vaul/use-snap-points.js +36 -10
  21. package/lib/module/web/vaul/use-snap-points.js.map +1 -1
  22. package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
  23. package/lib/typescript/src/TrueSheet.types.d.ts +22 -0
  24. package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
  25. package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
  26. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +1 -0
  27. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
  28. package/lib/typescript/src/web/vaul/constants.d.ts +2 -0
  29. package/lib/typescript/src/web/vaul/constants.d.ts.map +1 -1
  30. package/lib/typescript/src/web/vaul/context.d.ts +2 -0
  31. package/lib/typescript/src/web/vaul/context.d.ts.map +1 -1
  32. package/lib/typescript/src/web/vaul/index.d.ts +7 -1
  33. package/lib/typescript/src/web/vaul/index.d.ts.map +1 -1
  34. package/lib/typescript/src/web/vaul/use-snap-points.d.ts +3 -2
  35. package/lib/typescript/src/web/vaul/use-snap-points.d.ts.map +1 -1
  36. package/package.json +1 -1
  37. package/src/TrueSheet.tsx +3 -2
  38. package/src/TrueSheet.types.ts +24 -0
  39. package/src/TrueSheet.web.tsx +46 -43
  40. package/src/fabric/TrueSheetViewNativeComponent.ts +1 -0
  41. package/src/web/vaul/constants.ts +5 -0
  42. package/src/web/vaul/context.ts +4 -0
  43. package/src/web/vaul/index.tsx +26 -6
  44. package/src/web/vaul/use-snap-points.ts +61 -10
@@ -76,6 +76,7 @@ android {
76
76
  minSdkVersion getExtOrIntegerDefault("minSdkVersion")
77
77
  targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
78
78
  buildConfigField "boolean", "EDGE_TO_EDGE_ENABLED", "${getEdgeToEdgeEnabled()}"
79
+ consumerProguardFiles "proguard-rules.pro"
79
80
  }
80
81
 
81
82
  buildTypes {
@@ -0,0 +1,3 @@
1
+ # Matched by class name in RNScreensEventObserver and TrueSheetCoordinatorLayout
2
+ -keepnames class com.swmansion.rnscreens.Screen
3
+ -keepnames class com.swmansion.gesturehandler.react.RNGestureHandlerRootView
@@ -453,6 +453,7 @@ class TrueSheetContentView(private val reactContext: ThemedReactContext) : React
453
453
  private fun scrollToFocusedInput(smooth: Boolean = true) {
454
454
  val scrollView = detectedScrollView ?: findScrollView() ?: return
455
455
  val focusedView = findFocus() ?: return
456
+ if (!focusedView.isDescendantOf(scrollView)) return
456
457
 
457
458
  val focusedLocation = IntArray(2)
458
459
  val scrollViewLocation = IntArray(2)
@@ -18,6 +18,7 @@ import com.lodev09.truesheet.core.AccessibilityOptions
18
18
  import com.lodev09.truesheet.core.GrabberOptions
19
19
  import com.lodev09.truesheet.core.RNScreensEventObserver
20
20
  import com.lodev09.truesheet.core.RNScreensEventObserverDelegate
21
+ import com.lodev09.truesheet.core.TrueSheetDismissThreshold
21
22
  import com.lodev09.truesheet.core.TrueSheetStackManager
22
23
  import com.lodev09.truesheet.events.*
23
24
  import com.lodev09.truesheet.utils.KeyboardUtils
@@ -277,6 +278,10 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
277
278
  viewController.draggable = draggable
278
279
  }
279
280
 
281
+ fun setDismissThreshold(dismissThreshold: String?) {
282
+ viewController.dismissThreshold = TrueSheetDismissThreshold.fromString(dismissThreshold)
283
+ }
284
+
280
285
  fun setGrabber(grabber: Boolean) {
281
286
  viewController.grabber = grabber
282
287
  }
@@ -35,6 +35,7 @@ import com.lodev09.truesheet.core.TrueSheetDetentCalculator
35
35
  import com.lodev09.truesheet.core.TrueSheetDetentCalculatorDelegate
36
36
  import com.lodev09.truesheet.core.TrueSheetDimView
37
37
  import com.lodev09.truesheet.core.TrueSheetDimViewDelegate
38
+ import com.lodev09.truesheet.core.TrueSheetDismissThreshold
38
39
  import com.lodev09.truesheet.core.TrueSheetKeyboardObserver
39
40
  import com.lodev09.truesheet.core.TrueSheetKeyboardObserverDelegate
40
41
  import com.lodev09.truesheet.core.TrueSheetStackManager
@@ -271,6 +272,12 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
271
272
  if (isPresented) sheetView?.setupGrabber()
272
273
  }
273
274
 
275
+ var dismissThreshold: TrueSheetDismissThreshold = TrueSheetDismissThreshold.HALF
276
+ set(value) {
277
+ field = value
278
+ behavior?.dismissThreshold = value
279
+ }
280
+
274
281
  // =============================================================================
275
282
  // MARK: - Computed Properties
276
283
  // =============================================================================
@@ -915,6 +922,8 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
915
922
  behavior.isHideable = true
916
923
  behavior.isDraggable = draggable
917
924
  behavior.scrollingExpandsSheet = scrollableOptions?.scrollingExpandsSheet ?: true
925
+ behavior.dismissThreshold = dismissThreshold
926
+ behavior.lowestSheetTop = { detentCalculator.getLowestSheetTop() }
918
927
  behavior.state = BottomSheetBehavior.STATE_HIDDEN
919
928
  behavior.addBottomSheetCallback(sheetCallback)
920
929
 
@@ -199,6 +199,11 @@ class TrueSheetViewManager :
199
199
  view.setDraggable(draggable)
200
200
  }
201
201
 
202
+ @ReactProp(name = "dismissThreshold")
203
+ override fun setDismissThreshold(view: TrueSheetView, value: String?) {
204
+ view.setDismissThreshold(value)
205
+ }
206
+
202
207
  @ReactProp(name = "dimmed", defaultBoolean = true)
203
208
  override fun setDimmed(view: TrueSheetView, dimmed: Boolean) {
204
209
  view.setDimmed(dimmed)
@@ -1,11 +1,73 @@
1
1
  package com.lodev09.truesheet.core
2
2
 
3
+ import android.view.MotionEvent
4
+ import android.view.VelocityTracker
3
5
  import android.view.View
4
6
  import androidx.coordinatorlayout.widget.CoordinatorLayout
7
+ import androidx.core.view.ViewCompat
8
+ import com.facebook.react.uimanager.PixelUtil.dpToPx
5
9
  import com.google.android.material.bottomsheet.BottomSheetBehavior
10
+ import kotlin.math.abs
11
+
12
+ enum class TrueSheetDismissThreshold {
13
+ HALF,
14
+ SHORT;
15
+
16
+ companion object {
17
+ fun fromString(value: String?): TrueSheetDismissThreshold =
18
+ when (value) {
19
+ "short" -> SHORT
20
+ else -> HALF
21
+ }
22
+ }
23
+ }
6
24
 
7
25
  class TrueSheetBottomSheetBehavior<V : View> : BottomSheetBehavior<V>() {
8
26
  var scrollingExpandsSheet: Boolean = true
27
+ var dismissThreshold: TrueSheetDismissThreshold = TrueSheetDismissThreshold.HALF
28
+ var lowestSheetTop: (() -> Int)? = null
29
+
30
+ private var nestedDragged = false
31
+ private var nestedReleaseVelocity = 0f
32
+ private var touchPointerId = MotionEvent.INVALID_POINTER_ID
33
+ private var trackedEventTime = -1L
34
+ private var trackedAction = -1
35
+ private var velocityTracker: VelocityTracker? = null
36
+
37
+ init {
38
+ // Material hides once the release point, projected by velocity * friction, passes half
39
+ // the lowest detent. A higher friction lets short flicks dismiss, closer to iOS sheets.
40
+ hideFriction = HIDE_FRICTION
41
+ }
42
+
43
+ // With the short threshold, settle at or below the lowest detent like
44
+ // Compose Material3's sheet instead of Material's half-height rule.
45
+ private fun releaseState(child: V, dragged: Boolean, velocityY: Float): Int? {
46
+ if (dismissThreshold != TrueSheetDismissThreshold.SHORT || !isDraggable || !dragged) return null
47
+ val lowestTop = lowestSheetTop?.invoke() ?: return null
48
+ if (child.top < lowestTop) return null
49
+ val hides = if (abs(velocityY) > DISMISS_VELOCITY_DP.dpToPx()) {
50
+ velocityY > 0
51
+ } else {
52
+ child.top - lowestTop > DISMISS_DISTANCE_DP.dpToPx()
53
+ }
54
+ return if (hides && isHideable) STATE_HIDDEN else STATE_COLLAPSED
55
+ }
56
+
57
+ override fun onStartNestedScroll(
58
+ coordinatorLayout: CoordinatorLayout,
59
+ child: V,
60
+ directTargetChild: View,
61
+ target: View,
62
+ axes: Int,
63
+ type: Int
64
+ ): Boolean {
65
+ if (type == ViewCompat.TYPE_TOUCH) {
66
+ nestedDragged = false
67
+ nestedReleaseVelocity = 0f
68
+ }
69
+ return super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, axes, type)
70
+ }
9
71
 
10
72
  override fun onNestedPreScroll(
11
73
  coordinatorLayout: CoordinatorLayout,
@@ -20,6 +82,13 @@ class TrueSheetBottomSheetBehavior<V : View> : BottomSheetBehavior<V>() {
20
82
  // Block expansion from scroll, but allow if sheet is already being dragged
21
83
  if (!scrollingExpandsSheet && dy > 0 && state != STATE_DRAGGING) return
22
84
  super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed, type)
85
+ if (type == ViewCompat.TYPE_TOUCH) {
86
+ if (state == STATE_EXPANDED) {
87
+ nestedDragged = false
88
+ } else if (consumed[1] != 0) {
89
+ nestedDragged = true
90
+ }
91
+ }
23
92
  }
24
93
 
25
94
  override fun onNestedPreFling(
@@ -29,8 +98,65 @@ class TrueSheetBottomSheetBehavior<V : View> : BottomSheetBehavior<V>() {
29
98
  velocityX: Float,
30
99
  velocityY: Float
31
100
  ): Boolean {
101
+ nestedReleaseVelocity = -velocityY
102
+ if (releaseState(child, nestedDragged, nestedReleaseVelocity) != null) return true
32
103
  // Don't consume flings — let the ScrollView decelerate naturally
33
104
  if (!scrollingExpandsSheet) return false
34
105
  return super.onNestedPreFling(coordinatorLayout, child, target, velocityX, velocityY)
35
106
  }
107
+
108
+ override fun onStopNestedScroll(coordinatorLayout: CoordinatorLayout, child: V, target: View, type: Int) {
109
+ if (type == ViewCompat.TYPE_TOUCH) {
110
+ releaseState(child, nestedDragged, nestedReleaseVelocity)?.let {
111
+ nestedDragged = false
112
+ state = it
113
+ return
114
+ }
115
+ }
116
+ super.onStopNestedScroll(coordinatorLayout, child, target, type)
117
+ }
118
+
119
+ private fun trackTouch(event: MotionEvent) {
120
+ if (dismissThreshold != TrueSheetDismissThreshold.SHORT) return
121
+ if (event.eventTime == trackedEventTime && event.actionMasked == trackedAction) return
122
+ trackedEventTime = event.eventTime
123
+ trackedAction = event.actionMasked
124
+ if (event.actionMasked == MotionEvent.ACTION_DOWN) {
125
+ velocityTracker?.recycle()
126
+ velocityTracker = VelocityTracker.obtain()
127
+ touchPointerId = event.getPointerId(0)
128
+ }
129
+ velocityTracker?.addMovement(event)
130
+ }
131
+
132
+ override fun onInterceptTouchEvent(parent: CoordinatorLayout, child: V, event: MotionEvent): Boolean {
133
+ trackTouch(event)
134
+ return super.onInterceptTouchEvent(parent, child, event)
135
+ }
136
+
137
+ override fun onTouchEvent(parent: CoordinatorLayout, child: V, event: MotionEvent): Boolean {
138
+ trackTouch(event)
139
+ val wasDragging = state == STATE_DRAGGING
140
+ val handled = super.onTouchEvent(parent, child, event)
141
+ if (event.actionMasked == MotionEvent.ACTION_UP) {
142
+ val velocityY = velocityTracker?.run {
143
+ computeCurrentVelocity(1000)
144
+ getYVelocity(touchPointerId)
145
+ } ?: 0f
146
+ releaseState(child, wasDragging, velocityY)?.let { state = it }
147
+ }
148
+ if (event.actionMasked == MotionEvent.ACTION_UP || event.actionMasked == MotionEvent.ACTION_CANCEL) {
149
+ velocityTracker?.recycle()
150
+ velocityTracker = null
151
+ }
152
+ return handled
153
+ }
154
+
155
+ companion object {
156
+ private const val HIDE_FRICTION = 0.3f
157
+
158
+ // Compose Material3 SheetState's velocity and positional thresholds
159
+ private const val DISMISS_VELOCITY_DP = 125f
160
+ private const val DISMISS_DISTANCE_DP = 56f
161
+ }
36
162
  }
@@ -64,6 +64,9 @@ using namespace facebook::react;
64
64
  BOOL _pendingMountEvent;
65
65
  BOOL _pendingSizeChange;
66
66
  BOOL _pendingPropsUpdate;
67
+ BOOL _isPresentPending;
68
+ NSUInteger _pendingPresentGeneration;
69
+ TrueSheetCompletionBlock _pendingPresentCompletion;
67
70
  NSArray *_pendingDetents;
68
71
  RNScreensEventObserver *_screensEventObserver;
69
72
  }
@@ -183,6 +186,8 @@ using namespace facebook::react;
183
186
  [_screensEventObserver stopObserving];
184
187
  _screensEventObserver = nil;
185
188
 
189
+ [self cancelPendingPresent];
190
+
186
191
  if (_controller && _controller.presentingViewController) {
187
192
  // Find the root presenting controller to dismiss the entire stack
188
193
  UIViewController *root = _controller.presentingViewController;
@@ -452,6 +457,8 @@ using namespace facebook::react;
452
457
  }
453
458
  }
454
459
 
460
+ [self cancelPendingPresent];
461
+
455
462
  _lastStateSize = CGSizeZero;
456
463
  _didInitiallyPresent = NO;
457
464
  _dismissedByNavigation = NO;
@@ -545,7 +552,7 @@ using namespace facebook::react;
545
552
  - (void)presentAtIndex:(NSInteger)index
546
553
  animated:(BOOL)animated
547
554
  completion:(nullable TrueSheetCompletionBlock)completion {
548
- if (_controller.isBeingPresented || _controller.isPresented) {
555
+ if (_controller.isBeingPresented || _controller.isPresented || _isPresentPending) {
549
556
  RCTLogWarn(@"TrueSheet: sheet is already presented. Use resize() to change detent.");
550
557
  if (completion) {
551
558
  completion(YES, nil);
@@ -567,6 +574,36 @@ using namespace facebook::react;
567
574
  return;
568
575
  }
569
576
 
577
+ // A controller still animating out of the presenter (e.g. a navigation modal
578
+ // closing) makes UIKit queue this presentation, so everything measured below
579
+ // goes stale before it starts. Present once that transition ends.
580
+ UIViewController *dismissing = presentingViewController.presentedViewController;
581
+ id<UIViewControllerTransitionCoordinator> dismissCoordinator =
582
+ dismissing.isBeingDismissed ? dismissing.transitionCoordinator : nil;
583
+ if (dismissCoordinator) {
584
+ _isPresentPending = YES;
585
+ _pendingPresentCompletion = completion;
586
+ NSUInteger generation = ++_pendingPresentGeneration;
587
+
588
+ __weak __typeof(self) weakSelf = self;
589
+ [dismissCoordinator
590
+ animateAlongsideTransition:nil
591
+ completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
592
+ dispatch_async(dispatch_get_main_queue(), ^{
593
+ __typeof(self) strongSelf = weakSelf;
594
+ if (!strongSelf || !strongSelf->_isPresentPending ||
595
+ strongSelf->_pendingPresentGeneration != generation)
596
+ return;
597
+
598
+ TrueSheetCompletionBlock pendingCompletion = strongSelf->_pendingPresentCompletion;
599
+ strongSelf->_isPresentPending = NO;
600
+ strongSelf->_pendingPresentCompletion = nil;
601
+ [strongSelf presentAtIndex:index animated:animated completion:pendingCompletion];
602
+ });
603
+ }];
604
+ return;
605
+ }
606
+
570
607
  [_controller setupAnchorViewInView:presentingViewController.view];
571
608
  [_controller setupSheetSizing];
572
609
  [_controller setupSheetProps];
@@ -647,7 +684,32 @@ using namespace facebook::react;
647
684
  realtime:NO];
648
685
  }
649
686
 
687
+ /**
688
+ * Drops a deferred present and resolves its caller. Returns whether one was pending.
689
+ */
690
+ - (BOOL)cancelPendingPresent {
691
+ if (!_isPresentPending) {
692
+ return NO;
693
+ }
694
+
695
+ TrueSheetCompletionBlock pendingCompletion = _pendingPresentCompletion;
696
+ _isPresentPending = NO;
697
+ _pendingPresentCompletion = nil;
698
+ if (pendingCompletion) {
699
+ pendingCompletion(YES, nil);
700
+ }
701
+ return YES;
702
+ }
703
+
650
704
  - (void)dismissAnimated:(BOOL)animated completion:(nullable TrueSheetCompletionBlock)completion {
705
+ // Dismissing before a deferred present starts cancels it — nothing was presented.
706
+ if ([self cancelPendingPresent]) {
707
+ if (completion) {
708
+ completion(YES, nil);
709
+ }
710
+ return;
711
+ }
712
+
651
713
  if (_controller.isBeingDismissed || !_controller.isPresented) {
652
714
  RCTLogWarn(@"TrueSheet: sheet is already dismissed. No need to dismiss it again.");
653
715
 
@@ -446,6 +446,7 @@ export class TrueSheet extends PureComponent {
446
446
  backgroundStyle,
447
447
  dismissible = true,
448
448
  draggable = true,
449
+ dismissThreshold = 'half',
449
450
  grabber = true,
450
451
  grabberOptions,
451
452
  accessibilityOptions,
@@ -541,6 +542,7 @@ export class TrueSheet extends PureComponent {
541
542
  initialDetentAnimated: initialDetentAnimated,
542
543
  dismissible: dismissible,
543
544
  draggable: draggable,
545
+ dismissThreshold: dismissThreshold,
544
546
  maxContentHeight: maxContentHeight,
545
547
  maxContentWidth: maxContentWidth,
546
548
  placement: placement,
@@ -609,8 +611,7 @@ TrueSheet;
609
611
  const styles = StyleSheet.create({
610
612
  sheetView: {
611
613
  ...StyleSheet.absoluteFill,
612
- zIndex: -9999,
613
- pointerEvents: 'box-none'
614
+ pointerEvents: 'none'
614
615
  },
615
616
  // Fill the sheet so flex layouts track the sheet's size per detent
616
617
  container: {
@@ -1 +1 @@
1
- {"version":3,"names":["PureComponent","createRef","isValidElement","createElement","useEffect","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","TrueSheetBackground","normalizeDetentBackground","Platform","StyleSheet","BackHandler","RootTagContext","findNodeHandle","processColor","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AppContainer","__DEV__","require","default","LINKING_ERROR","select","ios","Error","stopTouchPropagation","event","stopPropagation","stopResponderNegotiation","InitialPresentGate","onReady","TrueSheet","displayName","contextType","backHandlerSubscription","isPresented","isSheetVisible","instances","presentationResolver","isPresenting","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","lazy","state","shouldRenderNativeView","initialPresentReady","scrollableHandle","onMount","bind","onWillDismiss","onDidDismiss","onDismissAttempt","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","handleBackPress","onVisibilityChange","onInitialPresentReady","setState","updateScrollableHandle","scrollableRef","current","error","console","warn","detents","length","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","present","animated","dismiss","dismissStack","resize","dismissAll","registerInstance","unregisterInstance","OS","remove","addEventListener","nativeEvent","visible","dismissible","onBackPress","Promise","resolve","presentByRef","resizeByRef","dismissByRef","dismissStackByRef","componentDidMount","componentDidUpdate","prevProps","prevInitialDetentIndex","componentWillUnmount","render","backgroundColor","detentBackgrounds","background","backgroundStyle","draggable","grabber","grabberOptions","accessibilityOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","backgroundBlur","cornerRadius","maxContentHeight","maxContentWidth","placement","placementOffset","scrollableOptions","footerOptions","presentation","children","style","header","headerStyle","headerOptions","footer","footerStyle","insetAdjustment","rest","resolvedDetents","slice","map","autoPresent","gatedInitialDetentIndex","cachedGrabberOptions","resolvedGrabberOptions","color","sheetContent","styles","position","absoluteHeader","autoBottomInset","absoluteFooter","relativeFooter","ref","sheetView","Array","from","entry","normalized","footerPosition","keyboardOffset","avoidKeyboard","onStartShouldSetResponder","onMoveShouldSetResponder","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","container","rootTag","context","rootViewStyle","inspectorHost","internal_excludeLogBox","create","absoluteFill","zIndex","pointerEvents","display","top","left","right","marginTop","bottom"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PureComponent","createRef","isValidElement","createElement","useEffect","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","TrueSheetBackground","normalizeDetentBackground","Platform","StyleSheet","BackHandler","RootTagContext","findNodeHandle","processColor","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AppContainer","__DEV__","require","default","LINKING_ERROR","select","ios","Error","stopTouchPropagation","event","stopPropagation","stopResponderNegotiation","InitialPresentGate","onReady","TrueSheet","displayName","contextType","backHandlerSubscription","isPresented","isSheetVisible","instances","presentationResolver","isPresenting","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","lazy","state","shouldRenderNativeView","initialPresentReady","scrollableHandle","onMount","bind","onWillDismiss","onDidDismiss","onDismissAttempt","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","handleBackPress","onVisibilityChange","onInitialPresentReady","setState","updateScrollableHandle","scrollableRef","current","error","console","warn","detents","length","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","present","animated","dismiss","dismissStack","resize","dismissAll","registerInstance","unregisterInstance","OS","remove","addEventListener","nativeEvent","visible","dismissible","onBackPress","Promise","resolve","presentByRef","resizeByRef","dismissByRef","dismissStackByRef","componentDidMount","componentDidUpdate","prevProps","prevInitialDetentIndex","componentWillUnmount","render","backgroundColor","detentBackgrounds","background","backgroundStyle","draggable","dismissThreshold","grabber","grabberOptions","accessibilityOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","backgroundBlur","cornerRadius","maxContentHeight","maxContentWidth","placement","placementOffset","scrollableOptions","footerOptions","presentation","children","style","header","headerStyle","headerOptions","footer","footerStyle","insetAdjustment","rest","resolvedDetents","slice","map","autoPresent","gatedInitialDetentIndex","cachedGrabberOptions","resolvedGrabberOptions","color","sheetContent","styles","position","absoluteHeader","autoBottomInset","absoluteFooter","relativeFooter","ref","sheetView","Array","from","entry","normalized","footerPosition","keyboardOffset","avoidKeyboard","onStartShouldSetResponder","onMoveShouldSetResponder","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","container","rootTag","context","rootViewStyle","inspectorHost","internal_excludeLogBox","create","absoluteFill","pointerEvents","display","top","left","right","zIndex","marginTop","bottom"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  /// <reference lib="dom" />
4
- import { createElement, forwardRef, isValidElement, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
4
+ import { createElement, forwardRef, isValidElement, useCallback, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from 'react';
5
5
  import { StyleSheet, useColorScheme, useWindowDimensions, View } from 'react-native';
6
6
  import { measurePeekContentHeight, TrueSheetPeekContext } from "./TrueSheetPeek.web.js";
7
7
  import { usePortalContainer, useRegisterSheet, useSheetStack } from "./TrueSheetProvider.web.js";
@@ -30,6 +30,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
30
30
  name,
31
31
  dismissible = true,
32
32
  draggable = true,
33
+ dismissThreshold = 'half',
33
34
  cornerRadius,
34
35
  style,
35
36
  backgroundColor: backgroundColorProp,
@@ -99,6 +100,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
99
100
  const effectiveDetached = isFormSheet || detached;
100
101
  const colorScheme = useColorScheme();
101
102
  const shouldAutoPresent = initialDetentIndex >= 0 && initialDetentIndex < validDetents.length;
103
+ const didInitiallyPresentRef = useRef(shouldAutoPresent);
102
104
  const [isOpen, setIsOpen] = useState(shouldAutoPresent);
103
105
  const isOpenRef = useRef(isOpen);
104
106
  isOpenRef.current = isOpen;
@@ -187,9 +189,21 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
187
189
  }
188
190
  }), []);
189
191
  useImperativeHandle(ref, () => methods, [methods]);
192
+ useEffect(() => {
193
+ if (!shouldAutoPresent || didInitiallyPresentRef.current) return;
194
+ didInitiallyPresentRef.current = true;
195
+ if (!isOpenRef.current) {
196
+ methods.present(initialDetentIndex);
197
+ }
198
+ }, [initialDetentIndex, shouldAutoPresent, methods]);
190
199
  const methodsRef = useRef(methods);
191
200
  useRegisterSheet(name, methodsRef);
192
201
  const drawerContentRef = useRef(null);
202
+ const [drawerContent, setDrawerContent] = useState(null);
203
+ const handleDrawerRef = useCallback(node => {
204
+ drawerContentRef.current = node;
205
+ setDrawerContent(node);
206
+ }, []);
193
207
 
194
208
  // Measured header/footer heights drive the 'peek' snap point — mirrors
195
209
  // native, where the controller tracks headerHeight/footerHeight.
@@ -279,44 +293,30 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
279
293
  const insetBehavior = scrollableOptions?.contentInsetAdjustment ?? 'automatic';
280
294
  const footerInsetAdjustment = Boolean(footer) && absoluteFooter && (insetBehavior === 'automatic' || insetBehavior === 'footer');
281
295
  const measureContent = validDetents.includes('auto') || isFormSheet;
282
- useEffect(() => {
283
- if (!isOpen) return undefined;
284
- let canceled = false;
285
- let rafId = 0;
286
- let observer;
287
- const attach = () => {
288
- if (canceled) return;
289
- const layoutEl = sizedLayoutRef.current;
290
- const drawer = drawerContentRef.current;
291
- if (!drawer || !layoutEl?.isConnected) {
292
- // Radix Presence defers the portal mount; poll until the drawer is live.
293
- rafId = window.requestAnimationFrame(attach);
294
- return;
296
+ useLayoutEffect(() => {
297
+ const layoutEl = sizedLayoutRef.current;
298
+ if (!isOpen || !drawerContent || !layoutEl?.isConnected) return undefined;
299
+ setHeaderHeight(getDOMElement(headerElRef.current)?.offsetHeight ?? 0);
300
+ setFooterHeight(getDOMElement(footerElRef.current)?.offsetHeight ?? 0);
301
+ measurePeek();
302
+ const observer = observeSheetLayout({
303
+ drawer: drawerContent,
304
+ layout: layoutEl,
305
+ getContent: () => getDOMElement(contentRef.current),
306
+ getHeader: () => getDOMElement(headerElRef.current),
307
+ getFooter: () => getDOMElement(footerElRef.current),
308
+ getScrollable: () => getScrollableElement(scrollableRef?.current),
309
+ absoluteHeader,
310
+ absoluteFooter,
311
+ footerInsetAdjustment,
312
+ measureContent,
313
+ onHeightChange: height => {
314
+ naturalHeightRef.current = height;
315
+ setMeasuredContentHeight(height);
295
316
  }
296
- observer = observeSheetLayout({
297
- drawer,
298
- layout: layoutEl,
299
- getContent: () => getDOMElement(contentRef.current),
300
- getHeader: () => getDOMElement(headerElRef.current),
301
- getFooter: () => getDOMElement(footerElRef.current),
302
- getScrollable: () => getScrollableElement(scrollableRef?.current),
303
- absoluteHeader,
304
- absoluteFooter,
305
- footerInsetAdjustment,
306
- measureContent,
307
- onHeightChange: height => {
308
- naturalHeightRef.current = height;
309
- setMeasuredContentHeight(height);
310
- }
311
- });
312
- };
313
- rafId = window.requestAnimationFrame(attach);
314
- return () => {
315
- canceled = true;
316
- window.cancelAnimationFrame(rafId);
317
- observer?.disconnect();
318
- };
319
- }, [isOpen, absoluteHeader, absoluteFooter, footerInsetAdjustment, measureContent, scrollableRef]);
317
+ });
318
+ return () => observer.disconnect();
319
+ }, [isOpen, drawerContent, measurePeek, absoluteHeader, absoluteFooter, footerInsetAdjustment, measureContent, scrollableRef]);
320
320
 
321
321
  // Below the last detent a vertical touch pan moves the sheet, not the
322
322
  // content — `[data-vaul-scroll-locked]` disables vertical touch panning on
@@ -1049,6 +1049,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
1049
1049
  onDrag: handleDrag,
1050
1050
  onRelease: handleRelease,
1051
1051
  dismissible: dismissible,
1052
+ dismissThreshold: dismissThreshold,
1052
1053
  onDismissAttempt: handleDismissAttempt,
1053
1054
  draggable: draggable,
1054
1055
  repositionInputs: false,
@@ -1059,7 +1060,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
1059
1060
  detachedRadius: effectiveCornerRadius,
1060
1061
  maxContentHeight: effectiveMaxContentHeight,
1061
1062
  peekHeight: peekHeight,
1062
- initialAnimated: initialDetentAnimated,
1063
+ initialAnimated: shouldAutoPresent ? initialDetentAnimated : true,
1063
1064
  detachedWrapperStyle: wrapperStyle,
1064
1065
  contentHeight: measuredContentHeight,
1065
1066
  activeSnapPoint: activeSnapPoint,
@@ -1070,7 +1071,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
1070
1071
  children: [/*#__PURE__*/_jsx(Drawer.Overlay, {
1071
1072
  style: overlayStyle
1072
1073
  }), /*#__PURE__*/_jsxs(Drawer.Content, {
1073
- ref: drawerContentRef,
1074
+ ref: handleDrawerRef,
1074
1075
  style: mergedContentStyle,
1075
1076
  onPointerDownOutside: handlePointerDownOutside,
1076
1077
  detachedSiblings: footer && absoluteFooter ? /*#__PURE__*/_jsx("div", {