@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.
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +8 -2
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +23 -6
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +9 -2
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +1 -0
- package/android/src/main/java/com/lodev09/truesheet/utils/TouchEventDeduper.kt +31 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.cpp +7 -0
- package/ios/TrueSheetContainerView.h +5 -0
- package/ios/TrueSheetContainerView.mm +4 -0
- package/ios/TrueSheetFooterView.h +6 -0
- package/ios/TrueSheetFooterView.mm +31 -2
- package/ios/TrueSheetView.mm +82 -17
- package/ios/TrueSheetViewController.h +9 -0
- package/ios/TrueSheetViewController.mm +109 -29
- package/lib/module/TrueSheet.js +53 -9
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/TrueSheet.web.js +11 -9
- package/lib/module/TrueSheet.web.js.map +1 -1
- package/lib/module/TrueSheetPeek.web.js +3 -3
- package/lib/module/TrueSheetPeek.web.js.map +1 -1
- package/lib/module/mocks/navigation.js +31 -21
- package/lib/module/mocks/navigation.js.map +1 -1
- package/lib/module/mocks/navigationExpoRouter.js +21 -0
- package/lib/module/mocks/navigationExpoRouter.js.map +1 -0
- package/lib/module/mocks/reanimated.js +1 -1
- package/lib/module/mocks/reanimated.js.map +1 -1
- package/lib/module/navigation/{TrueSheetView.js → TrueSheetNavigatorContent.js} +14 -12
- package/lib/module/navigation/TrueSheetNavigatorContent.js.map +1 -0
- package/lib/module/navigation/actions.js +50 -0
- package/lib/module/navigation/actions.js.map +1 -0
- package/lib/module/navigation/{TrueSheetRouter.js → createTrueSheetRouter.js} +20 -24
- package/lib/module/navigation/createTrueSheetRouter.js.map +1 -0
- package/lib/module/navigation/expo-router/index.js +48 -0
- package/lib/module/navigation/expo-router/index.js.map +1 -0
- package/lib/module/navigation/index.js +43 -2
- package/lib/module/navigation/index.js.map +1 -1
- package/lib/module/navigation/navigator.js +10 -0
- package/lib/module/navigation/navigator.js.map +1 -0
- package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js +2 -2
- package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js.map +1 -1
- package/lib/module/navigation/screen/TrueSheetScreen.js +2 -2
- package/lib/module/navigation/screen/TrueSheetScreen.js.map +1 -1
- package/lib/module/navigation/screen/useSheetScreenState.js +4 -4
- package/lib/module/navigation/screen/useSheetScreenState.js.map +1 -1
- package/lib/module/navigation/useTrueSheetNavigation.js +1 -1
- package/lib/module/navigation/useTrueSheetNavigation.js.map +1 -1
- package/lib/module/web/dom.js +10 -0
- package/lib/module/web/dom.js.map +1 -0
- package/lib/module/web/vaul/helpers.js +10 -4
- package/lib/module/web/vaul/helpers.js.map +1 -1
- package/lib/typescript/src/TrueSheet.d.ts +2 -0
- package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -1
- package/lib/typescript/src/mocks/navigation.d.ts +5 -1
- package/lib/typescript/src/mocks/navigation.d.ts.map +1 -1
- package/lib/typescript/src/mocks/navigationExpoRouter.d.ts +22 -0
- package/lib/typescript/src/mocks/navigationExpoRouter.d.ts.map +1 -0
- package/lib/typescript/src/mocks/reanimated.d.ts.map +1 -1
- package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts +5 -0
- package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts.map +1 -0
- package/lib/typescript/src/navigation/actions.d.ts +71 -0
- package/lib/typescript/src/navigation/actions.d.ts.map +1 -0
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts +14 -0
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts.map +1 -0
- package/lib/typescript/src/navigation/expo-router/index.d.ts +37 -0
- package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -0
- package/lib/typescript/src/navigation/index.d.ts +42 -2
- package/lib/typescript/src/navigation/index.d.ts.map +1 -1
- package/lib/typescript/src/navigation/navigator.d.ts +7 -0
- package/lib/typescript/src/navigation/navigator.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts +1 -1
- package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts +1 -1
- package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/types.d.ts +3 -4
- package/lib/typescript/src/navigation/screen/types.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +3 -5
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -1
- package/lib/typescript/src/navigation/types.d.ts +24 -0
- package/lib/typescript/src/navigation/types.d.ts.map +1 -1
- package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts +1 -1
- package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts.map +1 -1
- package/lib/typescript/src/web/dom.d.ts +7 -0
- package/lib/typescript/src/web/dom.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/helpers.d.ts.map +1 -1
- package/package.json +23 -8
- package/src/TrueSheet.tsx +55 -9
- package/src/TrueSheet.web.tsx +14 -18
- package/src/TrueSheetPeek.web.tsx +4 -3
- package/src/mocks/navigation.ts +32 -25
- package/src/mocks/navigationExpoRouter.ts +40 -0
- package/src/mocks/reanimated.ts +8 -9
- package/src/navigation/{TrueSheetView.tsx → TrueSheetNavigatorContent.tsx} +24 -17
- package/src/navigation/actions.ts +78 -0
- package/src/navigation/createTrueSheetRouter.ts +222 -0
- package/src/navigation/expo-router/index.ts +89 -0
- package/src/navigation/index.ts +69 -2
- package/src/navigation/navigator.ts +18 -0
- package/src/navigation/screen/ReanimatedTrueSheetScreen.tsx +2 -2
- package/src/navigation/screen/TrueSheetScreen.tsx +2 -2
- package/src/navigation/screen/types.ts +4 -6
- package/src/navigation/screen/useSheetScreenState.ts +8 -15
- package/src/navigation/types.ts +32 -0
- package/src/navigation/useTrueSheetNavigation.ts +1 -1
- package/src/web/dom.ts +9 -0
- package/src/web/vaul/helpers.ts +13 -6
- package/lib/module/navigation/TrueSheetRouter.js.map +0 -1
- package/lib/module/navigation/TrueSheetView.js.map +0 -1
- package/lib/module/navigation/createTrueSheetNavigator.js +0 -63
- package/lib/module/navigation/createTrueSheetNavigator.js.map +0 -1
- package/lib/typescript/src/navigation/TrueSheetRouter.d.ts +0 -57
- package/lib/typescript/src/navigation/TrueSheetRouter.d.ts.map +0 -1
- package/lib/typescript/src/navigation/TrueSheetView.d.ts +0 -10
- package/lib/typescript/src/navigation/TrueSheetView.d.ts.map +0 -1
- package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts +0 -35
- package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts.map +0 -1
- package/src/navigation/TrueSheetRouter.ts +0 -234
- 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 (
|
|
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
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
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)
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
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 (
|
|
246
|
-
|
|
275
|
+
if (self.maxContentHeight) {
|
|
276
|
+
maxHeight = fmin(maxHeight, [self.maxContentHeight floatValue]);
|
|
247
277
|
}
|
|
248
278
|
|
|
249
|
-
return
|
|
279
|
+
return maxHeight > 0 ? maxHeight : self.screenHeight;
|
|
250
280
|
}
|
|
251
281
|
|
|
252
|
-
// The inset the footer absorbs as padding.
|
|
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
|
-
|
|
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
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
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)
|
|
269
|
-
if (
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/lib/module/TrueSheet.js
CHANGED
|
@@ -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:
|
|
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 = [];
|