@lodev09/react-native-true-sheet 4.0.0-beta.1 → 4.0.0-beta.3

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 (118) hide show
  1. package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +8 -2
  2. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +23 -6
  3. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +9 -2
  4. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +1 -0
  5. package/android/src/main/java/com/lodev09/truesheet/utils/TouchEventDeduper.kt +31 -0
  6. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.cpp +7 -0
  7. package/ios/TrueSheetContainerView.h +5 -0
  8. package/ios/TrueSheetContainerView.mm +4 -0
  9. package/ios/TrueSheetFooterView.h +6 -0
  10. package/ios/TrueSheetFooterView.mm +31 -2
  11. package/ios/TrueSheetView.mm +82 -17
  12. package/ios/TrueSheetViewController.h +9 -0
  13. package/ios/TrueSheetViewController.mm +109 -29
  14. package/lib/module/TrueSheet.js +53 -9
  15. package/lib/module/TrueSheet.js.map +1 -1
  16. package/lib/module/TrueSheet.web.js +11 -9
  17. package/lib/module/TrueSheet.web.js.map +1 -1
  18. package/lib/module/TrueSheetPeek.web.js +3 -3
  19. package/lib/module/TrueSheetPeek.web.js.map +1 -1
  20. package/lib/module/mocks/navigation.js +31 -21
  21. package/lib/module/mocks/navigation.js.map +1 -1
  22. package/lib/module/mocks/navigationExpoRouter.js +21 -0
  23. package/lib/module/mocks/navigationExpoRouter.js.map +1 -0
  24. package/lib/module/mocks/reanimated.js +1 -1
  25. package/lib/module/mocks/reanimated.js.map +1 -1
  26. package/lib/module/navigation/{TrueSheetView.js → TrueSheetNavigatorContent.js} +14 -12
  27. package/lib/module/navigation/TrueSheetNavigatorContent.js.map +1 -0
  28. package/lib/module/navigation/actions.js +50 -0
  29. package/lib/module/navigation/actions.js.map +1 -0
  30. package/lib/module/navigation/{TrueSheetRouter.js → createTrueSheetRouter.js} +20 -24
  31. package/lib/module/navigation/createTrueSheetRouter.js.map +1 -0
  32. package/lib/module/navigation/expo-router/index.js +48 -0
  33. package/lib/module/navigation/expo-router/index.js.map +1 -0
  34. package/lib/module/navigation/index.js +43 -2
  35. package/lib/module/navigation/index.js.map +1 -1
  36. package/lib/module/navigation/navigator.js +10 -0
  37. package/lib/module/navigation/navigator.js.map +1 -0
  38. package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js +2 -2
  39. package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js.map +1 -1
  40. package/lib/module/navigation/screen/TrueSheetScreen.js +2 -2
  41. package/lib/module/navigation/screen/TrueSheetScreen.js.map +1 -1
  42. package/lib/module/navigation/screen/useSheetScreenState.js +4 -4
  43. package/lib/module/navigation/screen/useSheetScreenState.js.map +1 -1
  44. package/lib/module/navigation/useTrueSheetNavigation.js +1 -1
  45. package/lib/module/navigation/useTrueSheetNavigation.js.map +1 -1
  46. package/lib/module/web/dom.js +10 -0
  47. package/lib/module/web/dom.js.map +1 -0
  48. package/lib/module/web/vaul/helpers.js +10 -4
  49. package/lib/module/web/vaul/helpers.js.map +1 -1
  50. package/lib/typescript/src/TrueSheet.d.ts +2 -0
  51. package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
  52. package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
  53. package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -1
  54. package/lib/typescript/src/mocks/navigation.d.ts +5 -1
  55. package/lib/typescript/src/mocks/navigation.d.ts.map +1 -1
  56. package/lib/typescript/src/mocks/navigationExpoRouter.d.ts +22 -0
  57. package/lib/typescript/src/mocks/navigationExpoRouter.d.ts.map +1 -0
  58. package/lib/typescript/src/mocks/reanimated.d.ts.map +1 -1
  59. package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts +5 -0
  60. package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts.map +1 -0
  61. package/lib/typescript/src/navigation/actions.d.ts +71 -0
  62. package/lib/typescript/src/navigation/actions.d.ts.map +1 -0
  63. package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts +14 -0
  64. package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts.map +1 -0
  65. package/lib/typescript/src/navigation/expo-router/index.d.ts +37 -0
  66. package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -0
  67. package/lib/typescript/src/navigation/index.d.ts +42 -2
  68. package/lib/typescript/src/navigation/index.d.ts.map +1 -1
  69. package/lib/typescript/src/navigation/navigator.d.ts +7 -0
  70. package/lib/typescript/src/navigation/navigator.d.ts.map +1 -0
  71. package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts +1 -1
  72. package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts.map +1 -1
  73. package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts +1 -1
  74. package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts.map +1 -1
  75. package/lib/typescript/src/navigation/screen/types.d.ts +3 -4
  76. package/lib/typescript/src/navigation/screen/types.d.ts.map +1 -1
  77. package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +3 -5
  78. package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -1
  79. package/lib/typescript/src/navigation/types.d.ts +24 -0
  80. package/lib/typescript/src/navigation/types.d.ts.map +1 -1
  81. package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts +1 -1
  82. package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts.map +1 -1
  83. package/lib/typescript/src/web/dom.d.ts +7 -0
  84. package/lib/typescript/src/web/dom.d.ts.map +1 -0
  85. package/lib/typescript/src/web/vaul/helpers.d.ts.map +1 -1
  86. package/package.json +23 -8
  87. package/src/TrueSheet.tsx +55 -9
  88. package/src/TrueSheet.web.tsx +14 -18
  89. package/src/TrueSheetPeek.web.tsx +4 -3
  90. package/src/mocks/navigation.ts +32 -25
  91. package/src/mocks/navigationExpoRouter.ts +40 -0
  92. package/src/mocks/reanimated.ts +8 -9
  93. package/src/navigation/{TrueSheetView.tsx → TrueSheetNavigatorContent.tsx} +24 -17
  94. package/src/navigation/actions.ts +78 -0
  95. package/src/navigation/createTrueSheetRouter.ts +222 -0
  96. package/src/navigation/expo-router/index.ts +89 -0
  97. package/src/navigation/index.ts +69 -2
  98. package/src/navigation/navigator.ts +18 -0
  99. package/src/navigation/screen/ReanimatedTrueSheetScreen.tsx +2 -2
  100. package/src/navigation/screen/TrueSheetScreen.tsx +2 -2
  101. package/src/navigation/screen/types.ts +4 -6
  102. package/src/navigation/screen/useSheetScreenState.ts +8 -15
  103. package/src/navigation/types.ts +32 -0
  104. package/src/navigation/useTrueSheetNavigation.ts +1 -1
  105. package/src/web/dom.ts +9 -0
  106. package/src/web/vaul/helpers.ts +13 -6
  107. package/lib/module/navigation/TrueSheetRouter.js.map +0 -1
  108. package/lib/module/navigation/TrueSheetView.js.map +0 -1
  109. package/lib/module/navigation/createTrueSheetNavigator.js +0 -63
  110. package/lib/module/navigation/createTrueSheetNavigator.js.map +0 -1
  111. package/lib/typescript/src/navigation/TrueSheetRouter.d.ts +0 -57
  112. package/lib/typescript/src/navigation/TrueSheetRouter.d.ts.map +0 -1
  113. package/lib/typescript/src/navigation/TrueSheetView.d.ts +0 -10
  114. package/lib/typescript/src/navigation/TrueSheetView.d.ts.map +0 -1
  115. package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts +0 -35
  116. package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts.map +0 -1
  117. package/src/navigation/TrueSheetRouter.ts +0 -234
  118. package/src/navigation/createTrueSheetNavigator.tsx +0 -93
@@ -70,6 +70,11 @@ static char TrueSheetAccessibilityWindowPreviousElementsKey;
70
70
  BOOL _isDragging;
71
71
  BOOL _isWillDismissEmitted;
72
72
 
73
+ // Last bottom safe area observed while presented — reused as the estimate
74
+ // for the next present (beats the float-threshold guess for re-presents).
75
+ BOOL _hasObservedBottomInset;
76
+ CGFloat _observedBottomInset;
77
+
73
78
  BOOL _isInteractiveDismiss;
74
79
  CGFloat _interactiveStartPosition;
75
80
  UIView *_interactiveContainerView;
@@ -206,6 +211,12 @@ static char TrueSheetAccessibilityWindowPreviousElementsKey;
206
211
  return window ? window.bounds.size.height : UIScreen.mainScreen.bounds.size.height;
207
212
  }
208
213
 
214
+ // Only phone sheets absorb the bottom safe-area inset — non-phone idioms
215
+ // (iPad form sheets) are inset from the screen edge by UIKit.
216
+ static BOOL TrueSheetIsPhoneIdiom(void) {
217
+ return UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone;
218
+ }
219
+
209
220
  - (CGFloat)detentBottomAdjustmentForHeight:(CGFloat)height {
210
221
  if (_insetAdjustment == TrueSheetViewInsetAdjustment::Automatic) {
211
222
  return 0;
@@ -215,7 +226,7 @@ static char TrueSheetAccessibilityWindowPreviousElementsKey;
215
226
  }
216
227
 
217
228
  - (CGFloat)bottomSafeAreaForHeight:(CGFloat)height {
218
- if (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPhone) {
229
+ if (!TrueSheetIsPhoneIdiom()) {
219
230
  return 0;
220
231
  }
221
232
 
@@ -232,49 +243,101 @@ static char TrueSheetAccessibilityWindowPreviousElementsKey;
232
243
  }
233
244
 
234
245
  /**
235
- * Bottom inset excluded from the auto detent. A relative footer owns the
236
- * sheet's bottom edge, so it absorbs the inset UIKit lays custom detents out
237
- * above the safe area, which would otherwise gap the content from the footer.
246
+ * Largest height the sheet can reach across its configured detents, excluding
247
+ * the inset currently baked into the footer's height. Basis for the footer's
248
+ * inset absorption so it follows the same rule as bottomSafeAreaForHeight:
249
+ * a sheet that only ever floats (small detents on iOS 26) keeps its footer
250
+ * unpadded.
238
251
  */
239
- - (CGFloat)autoDetentBottomInsetForHeight:(CGFloat)height {
240
- if (_insetAdjustment != TrueSheetViewInsetAdjustment::Automatic) {
241
- // 'none' already excludes the inset for every detent
242
- return 0;
252
+ - (CGFloat)maxNaturalDetentHeight {
253
+ CGFloat applied = [self.footerHeight floatValue] > 0 ? _appliedFooterBottomInset : 0;
254
+ CGFloat maxHeight = 0;
255
+
256
+ for (id detent in self.detents) {
257
+ if (![detent isKindOfClass:[NSNumber class]]) {
258
+ continue;
259
+ }
260
+
261
+ CGFloat value = [detent doubleValue];
262
+ CGFloat height = 0;
263
+ if (value == -1) {
264
+ // Auto counts a relative footer's (padded) height
265
+ height = [_detentCalculator autoHeight] - (_absoluteFooter ? 0 : applied);
266
+ } else if (value == -2) {
267
+ // Peek counts an absolute footer's (padded) height
268
+ height = [_detentCalculator peekHeight] - (_absoluteFooter ? applied : 0);
269
+ } else if (value > 0 && value <= 1) {
270
+ height = value * self.screenHeight;
271
+ }
272
+ maxHeight = fmax(maxHeight, height);
243
273
  }
244
274
 
245
- if (_absoluteFooter || [self.footerHeight floatValue] <= 0) {
246
- return 0;
275
+ if (self.maxContentHeight) {
276
+ maxHeight = fmin(maxHeight, [self.maxContentHeight floatValue]);
247
277
  }
248
278
 
249
- return [self bottomSafeAreaForHeight:height];
279
+ return maxHeight > 0 ? maxHeight : self.screenHeight;
250
280
  }
251
281
 
252
- // The inset the footer absorbs as padding. Uses the auto detent height when
253
- // available so it matches the auto detent's inset exclusion above.
282
+ // The inset the footer absorbs as padding.
254
283
  - (CGFloat)footerBottomInset {
255
284
  if (_insetAdjustment != TrueSheetViewInsetAdjustment::Automatic) {
256
285
  return 0;
257
286
  }
258
287
 
259
- return [self bottomSafeAreaForHeight:_autoDetentHeight > 0 ? _autoDetentHeight : self.screenHeight];
288
+ // Early out so the maxNaturalDetentHeight fallback below doesn't run per
289
+ // layout pass on iPad only to be zeroed by bottomSafeAreaForHeight:.
290
+ if (!TrueSheetIsPhoneIdiom()) {
291
+ return 0;
292
+ }
293
+
294
+ // Once laid out, the sheet's own safe area is the authority — it reflects
295
+ // UIKit's actual float/anchored decision (a floating sheet gets 0), where
296
+ // bottomSafeAreaForHeight: can only guess the float threshold. Guessing
297
+ // wrong leaves the safe-area region unfilled (gap) or double-padded.
298
+ UIView *view = self.viewIfLoaded;
299
+ if (view.window) {
300
+ _hasObservedBottomInset = YES;
301
+ _observedBottomInset = view.safeAreaInsets.bottom;
302
+ return _observedBottomInset;
303
+ }
304
+
305
+ // Off-window while presented (e.g. hidden behind a native screen): the last
306
+ // observed value is this sheet's own truth — prefer it over the
307
+ // float-threshold guess. Cleared on dismiss so a re-present observes fresh
308
+ // geometry (rotation or detent changes while dismissed would stale it).
309
+ if (_hasObservedBottomInset) {
310
+ return _observedBottomInset;
311
+ }
312
+
313
+ return [self bottomSafeAreaForHeight:[self maxNaturalDetentHeight]];
260
314
  }
261
315
 
262
316
  /**
263
- * Bottom inset excluded from the peek detent. An absolute footer counts
264
- * toward the peek height and absorbs the inset as padding, but UIKit already
265
- * lays custom detents out above the safe area — subtract it so the inset
266
- * isn't doubled.
317
+ * Bottom inset excluded from the auto detent. A relative footer owns the
318
+ * sheet's bottom edge and carries the inset in its height (see
319
+ * footerBottomInset) subtract exactly what was baked in so UIKit's own
320
+ * safe-area layout doesn't double it.
267
321
  */
268
- - (CGFloat)peekDetentBottomInsetForHeight:(CGFloat)height {
269
- if (_insetAdjustment != TrueSheetViewInsetAdjustment::Automatic) {
322
+ - (CGFloat)autoDetentBottomInset {
323
+ if (_absoluteFooter || [self.footerHeight floatValue] <= 0) {
270
324
  return 0;
271
325
  }
272
326
 
327
+ return _appliedFooterBottomInset;
328
+ }
329
+
330
+ /**
331
+ * Bottom inset excluded from the peek detent. An absolute footer counts
332
+ * toward the peek height and carries the inset in its height — subtract
333
+ * exactly what was baked in so it isn't doubled.
334
+ */
335
+ - (CGFloat)peekDetentBottomInset {
273
336
  if (!_absoluteFooter || [self.footerHeight floatValue] <= 0) {
274
337
  return 0;
275
338
  }
276
339
 
277
- return [self bottomSafeAreaForHeight:height];
340
+ return _appliedFooterBottomInset;
278
341
  }
279
342
 
280
343
  - (BOOL)isDesignCompatibilityMode {
@@ -520,6 +583,7 @@ static char TrueSheetAccessibilityWindowPreviousElementsKey;
520
583
  [self restoreWindowAccessibilityElements];
521
584
  _isPresented = NO;
522
585
  _isWillDismissEmitted = NO;
586
+ _hasObservedBottomInset = NO;
523
587
 
524
588
  [_anchorView removeFromSuperview];
525
589
  _anchorView = nil;
@@ -605,9 +669,30 @@ static char TrueSheetAccessibilityWindowPreviousElementsKey;
605
669
  }
606
670
  }
607
671
 
672
+ // Fires when UIKit resolves the sheet's float/anchored placement (present,
673
+ // detent resize crossing the float threshold, rotation). The footer's
674
+ // absorbed inset follows the observed safe area — repush it right away so
675
+ // the footer pads/unpads in the same layout pass.
676
+ - (void)viewSafeAreaInsetsDidChange {
677
+ [super viewSafeAreaInsetsDidChange];
678
+
679
+ // Mid-dismiss the frame moves off-screen and reports transient insets —
680
+ // don't let them pollute the observed value (matches viewDidLayoutSubviews).
681
+ if (!self.isBeingDismissed) {
682
+ [self.delegate viewControllerSafeAreaInsetsDidChange];
683
+ }
684
+ }
685
+
608
686
  - (void)viewDidLayoutSubviews {
609
687
  [super viewDidLayoutSubviews];
610
688
 
689
+ // viewSafeAreaInsetsDidChange doesn't fire on re-present when the observed
690
+ // inset matches the previous presentation's — refresh every layout pass
691
+ // instead (deduped downstream, so unchanged values are free).
692
+ if (!self.isBeingDismissed) {
693
+ [self.delegate viewControllerSafeAreaInsetsDidChange];
694
+ }
695
+
611
696
  // Skip size reports while backgrounded behind a stacked child — the push-back
612
697
  // scaling changes the frame and would needlessly resize content.
613
698
  // _lastReportedSize stays stale so the restore pass re-reports any real change.
@@ -1079,8 +1164,7 @@ static char TrueSheetAccessibilityWindowPreviousElementsKey;
1079
1164
  return [self customDetentWithIdentifier:@"custom-auto"
1080
1165
  atIndex:index
1081
1166
  heightBlock:^CGFloat {
1082
- CGFloat height = self->_autoDetentHeight;
1083
- return height - [self autoDetentBottomInsetForHeight:height];
1167
+ return self->_autoDetentHeight - [self autoDetentBottomInset];
1084
1168
  }];
1085
1169
  } else {
1086
1170
  return [UISheetPresentationControllerDetent mediumDetent];
@@ -1092,8 +1176,7 @@ static char TrueSheetAccessibilityWindowPreviousElementsKey;
1092
1176
  return [self customDetentWithIdentifier:@"custom-peek"
1093
1177
  atIndex:index
1094
1178
  heightBlock:^CGFloat {
1095
- CGFloat height = self->_peekDetentHeight;
1096
- return height - [self peekDetentBottomInsetForHeight:height];
1179
+ return self->_peekDetentHeight - [self peekDetentBottomInset];
1097
1180
  }];
1098
1181
  } else {
1099
1182
  return [UISheetPresentationControllerDetent mediumDetent];
@@ -1246,14 +1329,11 @@ static char TrueSheetAccessibilityWindowPreviousElementsKey;
1246
1329
  #if RNTS_IPHONE_OS_VERSION_AVAILABLE(26_1) && !TARGET_OS_MACCATALYST
1247
1330
  if (@available(iOS 26.1, *)) {
1248
1331
  if (!self.isDesignCompatibilityMode) {
1249
- if (self.backgroundColor) {
1250
- self.sheet.backgroundEffect = [UIColorEffect effectWithColor:self.backgroundColor];
1251
- } else if (hasBlur) {
1332
+ if (self.backgroundColor || hasBlur) {
1252
1333
  self.sheet.backgroundEffect = [UIColorEffect effectWithColor:[UIColor clearColor]];
1253
1334
  } else {
1254
1335
  self.sheet.backgroundEffect = nil;
1255
1336
  }
1256
- return;
1257
1337
  }
1258
1338
  }
1259
1339
  #endif
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { PureComponent, createRef, isValidElement, createElement } from 'react';
3
+ import { PureComponent, createRef, isValidElement, createElement, useEffect } from 'react';
4
4
  import TrueSheetViewNativeComponent from './fabric/TrueSheetViewNativeComponent';
5
5
  import TrueSheetContainerViewNativeComponent from './fabric/TrueSheetContainerViewNativeComponent';
6
6
  import TrueSheetContentViewNativeComponent from './fabric/TrueSheetContentViewNativeComponent';
@@ -22,6 +22,19 @@ const absorbUnclaimedTouches = () => true;
22
22
 
23
23
  // Stop raw touch events from bubbling past the sheet to outside ancestors
24
24
  const stopTouchPropagation = event => event.stopPropagation();
25
+ // Gates auto-present (initialDetentIndex) by one commit. Rendered last in the
26
+ // sheet subtree so its mount effect runs after the content's mount effects —
27
+ // updates they schedule (e.g. a navigation footer via setOptions) batch with
28
+ // onReady's, so native receives initialDetentIndex together with the settled
29
+ // tree and presents at the final height instead of resizing mid-flight.
30
+ const InitialPresentGate = ({
31
+ onReady
32
+ }) => {
33
+ useEffect(() => {
34
+ onReady();
35
+ }, [onReady]);
36
+ return null;
37
+ };
25
38
  export class TrueSheet extends PureComponent {
26
39
  displayName = 'TrueSheet';
27
40
  backHandlerSubscription = null;
@@ -50,7 +63,8 @@ export class TrueSheet extends PureComponent {
50
63
  // Lazy load by default, except when initialDetentIndex is set (for auto-presentation)
51
64
  const shouldRenderImmediately = props.initialDetentIndex !== undefined && props.initialDetentIndex >= 0;
52
65
  this.state = {
53
- shouldRenderNativeView: shouldRenderImmediately
66
+ shouldRenderNativeView: shouldRenderImmediately,
67
+ initialPresentReady: false
54
68
  };
55
69
  this.onMount = this.onMount.bind(this);
56
70
  this.onWillDismiss = this.onWillDismiss.bind(this);
@@ -68,6 +82,12 @@ export class TrueSheet extends PureComponent {
68
82
  this.onDidBlur = this.onDidBlur.bind(this);
69
83
  this.handleBackPress = this.handleBackPress.bind(this);
70
84
  this.onVisibilityChange = this.onVisibilityChange.bind(this);
85
+ this.onInitialPresentReady = this.onInitialPresentReady.bind(this);
86
+ }
87
+ onInitialPresentReady() {
88
+ this.setState({
89
+ initialPresentReady: true
90
+ });
71
91
  }
72
92
  validateDetents() {
73
93
  const {
@@ -338,6 +358,17 @@ export class TrueSheet extends PureComponent {
338
358
  if (prevProps.detents !== this.props.detents) {
339
359
  this.validateDetents();
340
360
  }
361
+
362
+ // initialDetentIndex set at runtime on a lazily-mounted sheet: render the
363
+ // native tree so InitialPresentGate can deliver the index (constructor
364
+ // only computes this for the initial prop).
365
+ const prevInitialDetentIndex = prevProps.initialDetentIndex ?? -1;
366
+ const initialDetentIndex = this.props.initialDetentIndex ?? -1;
367
+ if (prevInitialDetentIndex < 0 && initialDetentIndex >= 0 && !this.state.shouldRenderNativeView) {
368
+ this.setState({
369
+ shouldRenderNativeView: true
370
+ });
371
+ }
341
372
  }
342
373
  componentWillUnmount() {
343
374
  this.unregisterInstance();
@@ -391,6 +422,11 @@ export class TrueSheet extends PureComponent {
391
422
  return Math.min(1, detent);
392
423
  });
393
424
 
425
+ // Hold initialDetentIndex back from native until the gate's effect flushes
426
+ // (see InitialPresentGate) — native presents when the prop lands.
427
+ const autoPresent = initialDetentIndex >= 0;
428
+ const gatedInitialDetentIndex = autoPresent && !this.state.initialPresentReady ? -1 : initialDetentIndex;
429
+
394
430
  // Cache grabberOptions to avoid creating a new object every render
395
431
  if (grabberOptions !== this.cachedGrabberOptions) {
396
432
  this.cachedGrabberOptions = grabberOptions;
@@ -413,7 +449,7 @@ export class TrueSheet extends PureComponent {
413
449
  accessibilityOptions: accessibilityOptions,
414
450
  dimmed: dimmed,
415
451
  dimmedDetentIndex: dimmedDetentIndex,
416
- initialDetentIndex: initialDetentIndex,
452
+ initialDetentIndex: gatedInitialDetentIndex,
417
453
  initialDetentAnimated: initialDetentAnimated,
418
454
  dismissible: dismissible,
419
455
  draggable: draggable,
@@ -443,14 +479,20 @@ export class TrueSheet extends PureComponent {
443
479
  onDidFocus: this.onDidFocus,
444
480
  onWillBlur: this.onWillBlur,
445
481
  onDidBlur: this.onDidBlur,
446
- onVisibilityChange: this.onVisibilityChange,
482
+ onVisibilityChange: this.onVisibilityChange
483
+ // These must stay on this host view, not on the container. The container is
484
+ // reparented into the native sheet, so this view is never a native ancestor of
485
+ // the sheet content. Claiming the responder here stops the negotiation at the
486
+ // sheet boundary without making an ancestor of the content the JS responder,
487
+ // which would block scrolling inside the sheet.
488
+ ,
489
+ onStartShouldSetResponder: absorbUnclaimedTouches,
490
+ onTouchStart: stopTouchPropagation,
491
+ onTouchMove: stopTouchPropagation,
492
+ onTouchEnd: stopTouchPropagation,
493
+ onTouchCancel: stopTouchPropagation,
447
494
  children: this.state.shouldRenderNativeView && /*#__PURE__*/_jsxs(TrueSheetContainerViewNativeComponent, {
448
495
  style: styles.container,
449
- onStartShouldSetResponder: absorbUnclaimedTouches,
450
- onTouchStart: stopTouchPropagation,
451
- onTouchMove: stopTouchPropagation,
452
- onTouchEnd: stopTouchPropagation,
453
- onTouchCancel: stopTouchPropagation,
454
496
  children: [header && /*#__PURE__*/_jsx(TrueSheetHeaderViewNativeComponent, {
455
497
  style: [styles.header, headerOptions?.position === 'absolute' && styles.absoluteHeader, headerStyle],
456
498
  children: /*#__PURE__*/isValidElement(header) ? header : /*#__PURE__*/createElement(header)
@@ -461,6 +503,8 @@ export class TrueSheet extends PureComponent {
461
503
  autoBottomInset: insetAdjustment === 'automatic',
462
504
  style: [styles.footer, footerOptions?.position === 'absolute' ? styles.absoluteFooter : styles.relativeFooter, footerStyle],
463
505
  children: /*#__PURE__*/isValidElement(footer) ? footer : /*#__PURE__*/createElement(footer)
506
+ }), autoPresent && !this.state.initialPresentReady && /*#__PURE__*/_jsx(InitialPresentGate, {
507
+ onReady: this.onInitialPresentReady
464
508
  })]
465
509
  })
466
510
  });
@@ -1 +1 @@
1
- {"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","StyleSheet","BackHandler","findNodeHandle","processColor","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","Error","absorbUnclaimedTouches","stopTouchPropagation","event","stopPropagation","TrueSheet","displayName","backHandlerSubscription","isPresented","isSheetVisible","instances","presentationResolver","isPresenting","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","handleBackPress","onVisibilityChange","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","animated","dismiss","dismissStack","resize","dismissAll","registerInstance","unregisterInstance","OS","remove","addEventListener","setState","nativeEvent","visible","dismissible","onBackPress","Promise","resolve","presentByRef","resizeByRef","dismissByRef","dismissStackByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","draggable","grabber","grabberOptions","accessibilityOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","backgroundBlur","blurOptions","cornerRadius","maxContentHeight","maxContentWidth","anchor","anchorOffset","scrollableOptions","footerOptions","presentation","children","style","header","headerStyle","headerOptions","footer","footerStyle","insetAdjustment","rest","resolvedDetents","slice","map","cachedGrabberOptions","resolvedGrabberOptions","color","ref","styles","sheetView","footerPosition","position","keyboardOffset","container","onStartShouldSetResponder","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","absoluteHeader","autoBottomInset","absoluteFooter","relativeFooter","create","absoluteFill","zIndex","pointerEvents","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","Platform","StyleSheet","BackHandler","findNodeHandle","processColor","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","Error","absorbUnclaimedTouches","stopTouchPropagation","event","stopPropagation","InitialPresentGate","onReady","TrueSheet","displayName","backHandlerSubscription","isPresented","isSheetVisible","instances","presentationResolver","isPresenting","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","initialPresentReady","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","handleBackPress","onVisibilityChange","onInitialPresentReady","setState","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","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","draggable","grabber","grabberOptions","accessibilityOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","backgroundBlur","blurOptions","cornerRadius","maxContentHeight","maxContentWidth","anchor","anchorOffset","scrollableOptions","footerOptions","presentation","children","style","header","headerStyle","headerOptions","footer","footerStyle","insetAdjustment","rest","resolvedDetents","slice","map","autoPresent","gatedInitialDetentIndex","cachedGrabberOptions","resolvedGrabberOptions","color","ref","styles","sheetView","footerPosition","position","keyboardOffset","onStartShouldSetResponder","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","container","absoluteHeader","autoBottomInset","absoluteFooter","relativeFooter","create","absoluteFill","zIndex","pointerEvents","top","left","right","marginTop","bottom"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,7 @@ import { StyleSheet, useColorScheme, useWindowDimensions, View } from 'react-nat
6
6
  import { measurePeekContentHeight, TrueSheetPeekContext } from "./TrueSheetPeek.web.js";
7
7
  import { usePortalContainer, useRegisterSheet, useSheetStack } from "./TrueSheetProvider.web.js";
8
8
  import { COLOR_SURFACE_CONTAINER_LOW_DARK, COLOR_SURFACE_CONTAINER_LOW_LIGHT, DEFAULT_ANCHOR_OFFSET, DEFAULT_CORNER_RADIUS, DEFAULT_DETACHED_OFFSET, DEFAULT_FORM_SHEET_HEIGHT_RATIO, DEFAULT_FORM_SHEET_WIDTH, DEFAULT_GRABBER_COLOR_DARK, DEFAULT_GRABBER_COLOR_LIGHT, DEFAULT_GRABBER_HEIGHT, DEFAULT_GRABBER_TOP_MARGIN, DEFAULT_GRABBER_WIDTH, DEFAULT_MAX_WIDTH } from "./web/constants.js";
9
+ import { getDOMElement } from "./web/dom.js";
9
10
  import { Drawer } from "./web/vaul/index.js";
10
11
  import { DEFAULT_PEEK_HEIGHT, TRANSITIONS } from "./web/vaul/constants.js";
11
12
 
@@ -213,6 +214,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
213
214
  const base = flat?.paddingBottom ?? flat?.paddingVertical ?? flat?.padding;
214
215
  const baseCss = typeof base === 'number' ? `${base}px` : typeof base === 'string' ? base : '0px';
215
216
  return [footerStyle, {
217
+ // RN types don't model CSS calc(), but RN-web passes it through
216
218
  paddingBottom: `calc(${baseCss} + env(safe-area-inset-bottom, 0px))`
217
219
  }];
218
220
  }, [footerOwnsInset, footerStyle]);
@@ -234,10 +236,10 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
234
236
  // scrollable's viewport replaced by its content size) — the height the
235
237
  // content wants regardless of the sheet's bounds.
236
238
  const measureNaturalHeight = useCallback(() => {
237
- const contentEl = contentRef.current;
239
+ const contentEl = getDOMElement(contentRef.current);
238
240
  if (!contentEl || !contentEl.isConnected) return 0;
239
- const headerEl = absoluteHeaderRef.current ? null : headerElRef.current;
240
- const footerEl = absoluteFooterRef.current ? null : footerElRef.current;
241
+ const headerEl = absoluteHeaderRef.current ? null : getDOMElement(headerElRef.current);
242
+ const footerEl = absoluteFooterRef.current ? null : getDOMElement(footerElRef.current);
241
243
  let height = (headerEl?.offsetHeight ?? 0) + (footerEl?.offsetHeight ?? 0) + contentEl.offsetHeight;
242
244
  const scroller = pinnedScrollerRef.current;
243
245
  const scrollContent = scroller?.firstElementChild;
@@ -269,8 +271,8 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
269
271
  // observation). Resolves the content node live: the layout-branch swap
270
272
  // (natural flow ↔ sized) remounts it.
271
273
  const observe = () => {
272
- const contentEl = contentRef.current;
273
- const headerEl = headerElRef.current;
274
+ const contentEl = getDOMElement(contentRef.current);
275
+ const headerEl = getDOMElement(headerElRef.current);
274
276
 
275
277
  // Skip mutations that don't change the observed topology — e.g. a
276
278
  // virtualized list mounting rows inside the pinned scroller, which
@@ -423,11 +425,11 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
423
425
  // measure either: they fire while the portal subtree is still detached.
424
426
  // Geometry only runs while the drawer is mounted, so the elements are
425
427
  // measurable here; fall back to the state value when they're absent.
426
- const headerEl = headerElRef.current;
428
+ const headerEl = getDOMElement(headerElRef.current);
427
429
  // A relative footer is pushed off-screen at the peek detent — excluded
428
- const footerEl = absoluteFooterRef.current ? footerElRef.current : null;
429
- const peekEl = peekElRef.current;
430
- const contentEl = contentRef.current;
430
+ const footerEl = absoluteFooterRef.current ? getDOMElement(footerElRef.current) : null;
431
+ const peekEl = getDOMElement(peekElRef.current);
432
+ const contentEl = getDOMElement(contentRef.current);
431
433
  const livePeekContentHeight = peekEl && contentEl ? measurePeekContentHeight(peekEl, contentEl) : inputs.peekContentHeight;
432
434
  const livePeekHeight = headerEl || footerEl || peekEl ? (headerEl?.offsetHeight ?? 0) + (footerEl?.offsetHeight ?? 0) + livePeekContentHeight || DEFAULT_PEEK_HEIGHT : inputs.peekHeight;
433
435
  const positions = [];