@lodev09/react-native-true-sheet 4.0.0-beta.14 → 4.0.0-beta.15
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/TrueSheetContainerView.kt +28 -6
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +99 -7
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +12 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +18 -7
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +40 -39
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +18 -8
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetView.kt +14 -8
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +8 -1
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDetentCalculator.kt +32 -5
- package/ios/TrueSheetContainerView.h +17 -4
- package/ios/TrueSheetContainerView.mm +23 -6
- package/ios/TrueSheetContentView.h +13 -1
- package/ios/TrueSheetContentView.mm +93 -35
- package/ios/TrueSheetFooterView.mm +19 -5
- package/ios/TrueSheetView.mm +29 -28
- package/ios/TrueSheetViewController.h +21 -1
- package/ios/TrueSheetViewController.mm +54 -16
- package/ios/core/TrueSheetDetentCalculator.h +6 -1
- package/ios/core/TrueSheetDetentCalculator.mm +9 -4
- package/ios/core/TrueSheetKeyboardObserver.mm +2 -0
- package/lib/module/TrueSheet.js +8 -5
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/TrueSheet.web.js +135 -32
- package/lib/module/TrueSheet.web.js.map +1 -1
- package/lib/module/TrueSheetPeek.web.js +20 -15
- package/lib/module/TrueSheetPeek.web.js.map +1 -1
- package/lib/module/fabric/TrueSheetViewNativeComponent.ts +5 -3
- package/lib/module/navigation/expo-router/index.js +5 -4
- package/lib/module/navigation/expo-router/index.js.map +1 -1
- package/lib/module/web/constants.js +1 -1
- package/lib/module/web/constants.js.map +1 -1
- package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.types.d.ts +64 -25
- package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheetPeek.web.d.ts +8 -4
- package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +5 -3
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/navigation/expo-router/index.d.ts +5 -3
- package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -1
- package/lib/typescript/src/navigation/types.d.ts +1 -1
- package/lib/typescript/src/navigation/types.d.ts.map +1 -1
- package/lib/typescript/src/web/constants.d.ts +1 -1
- package/lib/typescript/src/web/constants.d.ts.map +1 -1
- package/package.json +7 -6
- package/src/TrueSheet.tsx +7 -4
- package/src/TrueSheet.types.ts +67 -25
- package/src/TrueSheet.web.tsx +154 -30
- package/src/TrueSheetPeek.web.tsx +25 -23
- package/src/fabric/TrueSheetViewNativeComponent.ts +5 -3
- package/src/navigation/expo-router/index.ts +8 -11
- package/src/navigation/types.ts +3 -2
- package/src/web/constants.ts +1 -1
|
@@ -119,6 +119,7 @@ static char TrueSheetAccessibilityWindowPreviousElementsKey;
|
|
|
119
119
|
_grabber = YES;
|
|
120
120
|
_draggable = YES;
|
|
121
121
|
_scrollingExpandsSheet = YES;
|
|
122
|
+
_footerAvoidsKeyboard = YES;
|
|
122
123
|
_dismissible = YES;
|
|
123
124
|
_dimmed = YES;
|
|
124
125
|
_dimmedDetentIndex = @(0);
|
|
@@ -268,7 +269,6 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
|
|
|
268
269
|
* unpadded.
|
|
269
270
|
*/
|
|
270
271
|
- (CGFloat)maxNaturalDetentHeight {
|
|
271
|
-
CGFloat applied = [self.footerHeight floatValue] > 0 ? _appliedFooterBottomInset : 0;
|
|
272
272
|
CGFloat maxHeight = 0;
|
|
273
273
|
|
|
274
274
|
for (id detent in self.detents) {
|
|
@@ -279,11 +279,9 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
|
|
|
279
279
|
CGFloat value = [detent doubleValue];
|
|
280
280
|
CGFloat height = 0;
|
|
281
281
|
if (value == -1) {
|
|
282
|
-
|
|
283
|
-
height = [_detentCalculator autoHeight] - (_absoluteFooter ? 0 : applied);
|
|
282
|
+
height = [_detentCalculator autoHeightForKeyboardHeight:0] - [self autoDetentBottomInset];
|
|
284
283
|
} else if (value == -2) {
|
|
285
|
-
|
|
286
|
-
height = [_detentCalculator peekHeight] - (_absoluteFooter ? applied : 0);
|
|
284
|
+
height = [_detentCalculator peekHeight] - [self peekDetentBottomInset];
|
|
287
285
|
} else if (value > 0 && value <= 1) {
|
|
288
286
|
height = value * self.screenHeight;
|
|
289
287
|
}
|
|
@@ -331,14 +329,27 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
|
|
|
331
329
|
return [self bottomSafeAreaForHeight:[self maxNaturalDetentHeight]];
|
|
332
330
|
}
|
|
333
331
|
|
|
332
|
+
// Re-resolve alongside the keyboard animation as its overlap with the pinned
|
|
333
|
+
// footer changes, including keyboard height changes while already visible.
|
|
334
|
+
- (void)setKeyboardHeight:(CGFloat)keyboardHeight {
|
|
335
|
+
if (_keyboardHeight == keyboardHeight) {
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
_keyboardHeight = keyboardHeight;
|
|
339
|
+
|
|
340
|
+
if (_footerInsetAdjustment && !_footerAvoidsKeyboard && self.isPresented) {
|
|
341
|
+
[self setupSheetDetentsForSizeChange];
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
334
345
|
/**
|
|
335
|
-
* Bottom inset excluded from the auto detent. A relative footer
|
|
336
|
-
*
|
|
337
|
-
*
|
|
338
|
-
* safe-area layout doesn't double it.
|
|
346
|
+
* Bottom inset excluded from the auto detent. A relative footer (or an
|
|
347
|
+
* absolute one padding the scrollable) owns the sheet's bottom edge and
|
|
348
|
+
* carries the inset in its height (see footerBottomInset) — subtract exactly
|
|
349
|
+
* what was baked in so UIKit's own safe-area layout doesn't double it.
|
|
339
350
|
*/
|
|
340
351
|
- (CGFloat)autoDetentBottomInset {
|
|
341
|
-
if (_absoluteFooter || [self.footerHeight floatValue] <= 0) {
|
|
352
|
+
if ((_absoluteFooter && !self.footerInsetAdjustment) || [self.footerHeight floatValue] <= 0) {
|
|
342
353
|
return 0;
|
|
343
354
|
}
|
|
344
355
|
|
|
@@ -689,8 +700,10 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
|
|
|
689
700
|
}
|
|
690
701
|
|
|
691
702
|
// Dismissing with the keyboard up skips the hide notification — don't let
|
|
692
|
-
// the stale flag block learning on the next present
|
|
703
|
+
// the stale flag block learning on the next present, or a stale height keep
|
|
704
|
+
// the footer out of the auto detent.
|
|
693
705
|
_keyboardSheetGrown = NO;
|
|
706
|
+
_keyboardHeight = 0;
|
|
694
707
|
|
|
695
708
|
[self emitDidDismissEvents];
|
|
696
709
|
}
|
|
@@ -1171,7 +1184,7 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
|
|
|
1171
1184
|
*/
|
|
1172
1185
|
- (void)setupSheetDetentsForSizeChange {
|
|
1173
1186
|
if (@available(iOS 16.0, *)) {
|
|
1174
|
-
CGFloat autoHeight = [_detentCalculator
|
|
1187
|
+
CGFloat autoHeight = [_detentCalculator autoHeightForKeyboardHeight:_keyboardHeight];
|
|
1175
1188
|
CGFloat peekHeight = [_detentCalculator peekHeight];
|
|
1176
1189
|
|
|
1177
1190
|
if (fabs(autoHeight - _autoDetentHeight) < 0.5 && fabs(peekHeight - _peekDetentHeight) < 0.5) {
|
|
@@ -1204,7 +1217,7 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
|
|
|
1204
1217
|
NSMutableArray<UISheetPresentationControllerDetent *> *detents = [NSMutableArray array];
|
|
1205
1218
|
[_detentCalculator clearResolvedHeights];
|
|
1206
1219
|
|
|
1207
|
-
_autoDetentHeight = [_detentCalculator
|
|
1220
|
+
_autoDetentHeight = [_detentCalculator autoHeightForKeyboardHeight:_keyboardHeight];
|
|
1208
1221
|
_peekDetentHeight = [_detentCalculator peekHeight];
|
|
1209
1222
|
|
|
1210
1223
|
for (NSInteger index = 0; index < self.detents.count; index++) {
|
|
@@ -1412,7 +1425,7 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
|
|
|
1412
1425
|
#if RNTS_IPHONE_OS_VERSION_AVAILABLE(26_1) && !TARGET_OS_MACCATALYST
|
|
1413
1426
|
if (@available(iOS 26.1, *)) {
|
|
1414
1427
|
if (!self.isDesignCompatibilityMode) {
|
|
1415
|
-
if (self.
|
|
1428
|
+
if (!self.glass || hasBlur) {
|
|
1416
1429
|
self.sheet.backgroundEffect = [UIColorEffect effectWithColor:[UIColor clearColor]];
|
|
1417
1430
|
} else {
|
|
1418
1431
|
self.sheet.backgroundEffect = nil;
|
|
@@ -1513,9 +1526,24 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
|
|
|
1513
1526
|
}
|
|
1514
1527
|
|
|
1515
1528
|
- (BOOL)isAnchored {
|
|
1516
|
-
return self.
|
|
1529
|
+
return self.placement == TrueSheetViewPlacement::Leading || self.placement == TrueSheetViewPlacement::Trailing;
|
|
1517
1530
|
}
|
|
1518
1531
|
|
|
1532
|
+
#if RNTS_IPHONE_OS_VERSION_AVAILABLE(27_0)
|
|
1533
|
+
- (UISheetPresentationControllerPlacement)preferredPlacement API_AVAILABLE(ios(27.0)) {
|
|
1534
|
+
switch (self.placement) {
|
|
1535
|
+
case TrueSheetViewPlacement::Leading:
|
|
1536
|
+
return UISheetPresentationControllerPlacementLeading;
|
|
1537
|
+
case TrueSheetViewPlacement::Center:
|
|
1538
|
+
return UISheetPresentationControllerPlacementCenter;
|
|
1539
|
+
case TrueSheetViewPlacement::Trailing:
|
|
1540
|
+
return UISheetPresentationControllerPlacementTrailing;
|
|
1541
|
+
case TrueSheetViewPlacement::Automatic:
|
|
1542
|
+
return UISheetPresentationControllerPlacementAutomatic;
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1545
|
+
#endif
|
|
1546
|
+
|
|
1519
1547
|
- (void)setupAnchorViewInView:(UIView *)parentView {
|
|
1520
1548
|
if (!parentView)
|
|
1521
1549
|
return;
|
|
@@ -1523,6 +1551,16 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
|
|
|
1523
1551
|
[_anchorView removeFromSuperview];
|
|
1524
1552
|
_anchorView = nil;
|
|
1525
1553
|
|
|
1554
|
+
#if RNTS_IPHONE_OS_VERSION_AVAILABLE(27_0)
|
|
1555
|
+
// iOS 27 exposes native placement. `sourceView` must stay nil since it overrides `preferredPlacement`.
|
|
1556
|
+
if (@available(iOS 27.0, *)) {
|
|
1557
|
+
self.sheetPresentationController.sourceView = nil;
|
|
1558
|
+
self.sheetPresentationController.preferredPlacement = [self preferredPlacement];
|
|
1559
|
+
return;
|
|
1560
|
+
}
|
|
1561
|
+
#endif
|
|
1562
|
+
|
|
1563
|
+
// Pre-27 has no explicit center, so `center` falls back to the system default like `automatic`.
|
|
1526
1564
|
if (!self.isAnchored) {
|
|
1527
1565
|
self.sheetPresentationController.sourceView = nil;
|
|
1528
1566
|
return;
|
|
@@ -1534,7 +1572,7 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
|
|
|
1534
1572
|
[parentView addSubview:_anchorView];
|
|
1535
1573
|
|
|
1536
1574
|
NSLayoutAnchor *horizontalAnchor =
|
|
1537
|
-
self.
|
|
1575
|
+
self.placement == TrueSheetViewPlacement::Trailing ? parentView.trailingAnchor : parentView.leadingAnchor;
|
|
1538
1576
|
|
|
1539
1577
|
[NSLayoutConstraint activateConstraints:@[
|
|
1540
1578
|
[_anchorView.bottomAnchor constraintEqualToAnchor:parentView.bottomAnchor],
|
|
@@ -24,6 +24,9 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
24
24
|
@property (nonatomic, readonly) BOOL absoluteHeader;
|
|
25
25
|
@property (nonatomic, strong, readonly, nullable) NSNumber *footerHeight;
|
|
26
26
|
@property (nonatomic, readonly) BOOL absoluteFooter;
|
|
27
|
+
@property (nonatomic, readonly) BOOL footerInsetAdjustment;
|
|
28
|
+
@property (nonatomic, readonly) BOOL footerAvoidsKeyboard;
|
|
29
|
+
@property (nonatomic, readonly) CGFloat appliedFooterBottomInset;
|
|
27
30
|
@property (nonatomic, strong, readonly, nullable) NSNumber *peekContentHeight;
|
|
28
31
|
|
|
29
32
|
@end
|
|
@@ -47,8 +50,10 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
47
50
|
/**
|
|
48
51
|
Returns the height for auto (-1) detents: content + header + footer height.
|
|
49
52
|
An absolute (floating) header or footer contributes no height.
|
|
53
|
+
A pinned footer contributes only its overlap above the keyboard. UIKit adds
|
|
54
|
+
the keyboard expansion separately. Pass 0 for the keyboard-free height.
|
|
50
55
|
*/
|
|
51
|
-
- (CGFloat)
|
|
56
|
+
- (CGFloat)autoHeightForKeyboardHeight:(CGFloat)keyboardHeight;
|
|
52
57
|
|
|
53
58
|
/**
|
|
54
59
|
Returns the height for peek (-2) detents: header + footer + peek content height.
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
if (index >= 0 && index < (NSInteger)detents.count) {
|
|
20
20
|
CGFloat value = [detents[index] doubleValue];
|
|
21
21
|
if (value == -1) {
|
|
22
|
-
return [self
|
|
22
|
+
return [self autoHeightForKeyboardHeight:0] / self.delegate.screenHeight;
|
|
23
23
|
}
|
|
24
24
|
if (value == -2) {
|
|
25
25
|
return [self peekHeight] / self.delegate.screenHeight;
|
|
@@ -29,10 +29,15 @@
|
|
|
29
29
|
return 0;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
- (CGFloat)
|
|
33
|
-
// An absolute (floating) header or footer overlaps the content, so it contributes no height
|
|
32
|
+
- (CGFloat)autoHeightForKeyboardHeight:(CGFloat)keyboardHeight {
|
|
33
|
+
// An absolute (floating) header or footer overlaps the content, so it contributes no height —
|
|
34
|
+
// unless the footer pads the scrollable, then the content ends above it like a relative footer
|
|
34
35
|
CGFloat headerHeight = self.delegate.absoluteHeader ? 0 : [self.delegate.headerHeight floatValue];
|
|
35
|
-
|
|
36
|
+
BOOL floatingFooter = self.delegate.absoluteFooter && !self.delegate.footerInsetAdjustment;
|
|
37
|
+
CGFloat footerHeight = floatingFooter ? 0 : [self.delegate.footerHeight floatValue];
|
|
38
|
+
if (self.delegate.absoluteFooter && !floatingFooter && !self.delegate.footerAvoidsKeyboard) {
|
|
39
|
+
footerHeight -= MIN(keyboardHeight, MAX(0, footerHeight - self.delegate.appliedFooterBottomInset));
|
|
40
|
+
}
|
|
36
41
|
return [self.delegate.contentHeight floatValue] + headerHeight + footerHeight;
|
|
37
42
|
}
|
|
38
43
|
|
package/lib/module/TrueSheet.js
CHANGED
|
@@ -450,11 +450,12 @@ export class TrueSheet extends PureComponent {
|
|
|
450
450
|
dimmedDetentIndex,
|
|
451
451
|
backgroundBlur,
|
|
452
452
|
blurOptions,
|
|
453
|
+
glass = true,
|
|
453
454
|
cornerRadius,
|
|
454
455
|
maxContentHeight,
|
|
455
456
|
maxContentWidth,
|
|
456
|
-
|
|
457
|
-
|
|
457
|
+
placement = 'automatic',
|
|
458
|
+
placementOffset,
|
|
458
459
|
scrollableOptions,
|
|
459
460
|
footerOptions,
|
|
460
461
|
presentation = 'page',
|
|
@@ -517,6 +518,7 @@ export class TrueSheet extends PureComponent {
|
|
|
517
518
|
detents: resolvedDetents,
|
|
518
519
|
backgroundBlur: backgroundBlur,
|
|
519
520
|
blurOptions: blurOptions,
|
|
521
|
+
glass: glass,
|
|
520
522
|
backgroundColor: backgroundColor,
|
|
521
523
|
cornerRadius: cornerRadius,
|
|
522
524
|
grabber: grabber,
|
|
@@ -530,14 +532,15 @@ export class TrueSheet extends PureComponent {
|
|
|
530
532
|
draggable: draggable,
|
|
531
533
|
maxContentHeight: maxContentHeight,
|
|
532
534
|
maxContentWidth: maxContentWidth,
|
|
533
|
-
|
|
534
|
-
|
|
535
|
+
placement: placement,
|
|
536
|
+
placementOffset: placementOffset,
|
|
535
537
|
scrollableHandle: this.state.scrollableHandle ?? -1,
|
|
536
538
|
scrollableOptions: scrollableOptions,
|
|
537
539
|
headerOptions: headerOptions,
|
|
538
540
|
footerOptions: {
|
|
539
541
|
footerPosition: footerOptions?.position,
|
|
540
|
-
keyboardOffset: footerOptions?.keyboardOffset
|
|
542
|
+
keyboardOffset: footerOptions?.keyboardOffset,
|
|
543
|
+
avoidKeyboard: footerOptions?.avoidKeyboard
|
|
541
544
|
},
|
|
542
545
|
presentation: presentation,
|
|
543
546
|
insetAdjustment: insetAdjustment,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","useEffect","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","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","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","sheetContent","styles","position","absoluteHeader","autoBottomInset","absoluteFooter","relativeFooter","ref","sheetView","footerPosition","keyboardOffset","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","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","draggable","grabber","grabberOptions","accessibilityOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","backgroundBlur","blurOptions","glass","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","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":[]}
|
|
@@ -5,7 +5,7 @@ import { createElement, forwardRef, isValidElement, useCallback, useEffect, useI
|
|
|
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";
|
|
8
|
-
import { COLOR_SURFACE_CONTAINER_LOW_DARK, COLOR_SURFACE_CONTAINER_LOW_LIGHT,
|
|
8
|
+
import { COLOR_SURFACE_CONTAINER_LOW_DARK, COLOR_SURFACE_CONTAINER_LOW_LIGHT, DEFAULT_PLACEMENT_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
9
|
import { getDOMElement } from "./web/dom.js";
|
|
10
10
|
import { Drawer } from "./web/vaul/index.js";
|
|
11
11
|
import { DEFAULT_PEEK_HEIGHT, DRAG_CLASS, TRANSITIONS } from "./web/vaul/constants.js";
|
|
@@ -32,8 +32,8 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
32
32
|
backgroundColor: backgroundColorProp,
|
|
33
33
|
maxContentHeight,
|
|
34
34
|
maxContentWidth,
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
placement = 'automatic',
|
|
36
|
+
placementOffset = DEFAULT_PLACEMENT_OFFSET,
|
|
37
37
|
scrollableRef,
|
|
38
38
|
scrollableOptions,
|
|
39
39
|
grabber = true,
|
|
@@ -201,16 +201,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
201
201
|
const [peekContentHeight, setPeekContentHeight] = useState(0);
|
|
202
202
|
const contentRef = useRef(null);
|
|
203
203
|
const peekElRef = useRef(null);
|
|
204
|
-
const
|
|
205
|
-
contentRef,
|
|
206
|
-
peekRef: peekElRef,
|
|
207
|
-
setPeekContentHeight
|
|
208
|
-
}), []);
|
|
209
|
-
|
|
210
|
-
// The peek's own onLayout only fires when *it* resizes. Content added above
|
|
211
|
-
// it moves it without resizing it, so re-measure its offset whenever the
|
|
212
|
-
// content view's layout changes.
|
|
213
|
-
const handleContentLayout = useCallback(() => {
|
|
204
|
+
const measurePeek = useCallback(() => {
|
|
214
205
|
const peekEl = getDOMElement(peekElRef.current);
|
|
215
206
|
const contentEl = getDOMElement(contentRef.current);
|
|
216
207
|
if (peekEl && contentEl) {
|
|
@@ -218,6 +209,29 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
218
209
|
}
|
|
219
210
|
}, []);
|
|
220
211
|
|
|
212
|
+
// Last-attached wins — during a screen swap the incoming peek mounts before
|
|
213
|
+
// the outgoing one unmounts, so the outgoing detach must not clear it.
|
|
214
|
+
const peekContext = useMemo(() => ({
|
|
215
|
+
contentRef,
|
|
216
|
+
attachPeek: view => {
|
|
217
|
+
peekElRef.current = view;
|
|
218
|
+
measurePeek();
|
|
219
|
+
},
|
|
220
|
+
detachPeek: view => {
|
|
221
|
+
if (peekElRef.current !== view) return;
|
|
222
|
+
peekElRef.current = null;
|
|
223
|
+
setPeekContentHeight(0);
|
|
224
|
+
},
|
|
225
|
+
measurePeek: view => {
|
|
226
|
+
if (peekElRef.current === view) measurePeek();
|
|
227
|
+
}
|
|
228
|
+
}), [measurePeek]);
|
|
229
|
+
|
|
230
|
+
// The peek's own onLayout only fires when *it* resizes. Content added above
|
|
231
|
+
// it moves it without resizing it, so re-measure its offset whenever the
|
|
232
|
+
// content view's layout changes.
|
|
233
|
+
const handleContentLayout = measurePeek;
|
|
234
|
+
|
|
221
235
|
// An absolute (floating) header overlaps the content, so it contributes no
|
|
222
236
|
// height to the 'auto' detent measurement.
|
|
223
237
|
const absoluteHeader = headerOptions?.position === 'absolute';
|
|
@@ -258,10 +272,15 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
258
272
|
const [hasBoundedScrollable, setHasBoundedScrollable] = useState(false);
|
|
259
273
|
const [scrollableAutoHeight, setScrollableAutoHeight] = useState(0);
|
|
260
274
|
const detectedScrollerRef = useRef(null);
|
|
275
|
+
// Bottom padding applied to the plugged scrollable for an absolute footer
|
|
276
|
+
// (see the footer inset effect below)
|
|
277
|
+
const footerInsetRef = useRef(0);
|
|
261
278
|
|
|
262
279
|
// Natural content height (header + content + footer, with a detected
|
|
263
280
|
// scrollable's viewport replaced by its content size) — the height the
|
|
264
|
-
// content wants regardless of the sheet's bounds.
|
|
281
|
+
// content wants regardless of the sheet's bounds. An absolute footer's inset
|
|
282
|
+
// on the scrollable counts like a relative footer's height, so the content
|
|
283
|
+
// ends above the footer (mirrors native's auto detent).
|
|
265
284
|
const measureNaturalHeight = useCallback(() => {
|
|
266
285
|
const contentEl = getDOMElement(contentRef.current);
|
|
267
286
|
if (!contentEl || !contentEl.isConnected) return 0;
|
|
@@ -271,7 +290,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
271
290
|
const scroller = detectedScrollerRef.current;
|
|
272
291
|
const scrollContent = scroller?.firstElementChild;
|
|
273
292
|
if (scroller?.isConnected && scrollContent instanceof HTMLElement) {
|
|
274
|
-
height += scrollContent.offsetHeight - scroller.clientHeight;
|
|
293
|
+
height += scrollContent.offsetHeight - scroller.clientHeight + footerInsetRef.current;
|
|
275
294
|
}
|
|
276
295
|
return Math.max(0, height);
|
|
277
296
|
}, []);
|
|
@@ -613,6 +632,90 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
613
632
|
});
|
|
614
633
|
}, [interpolateFromPosition, updateSizedLayoutHeight]);
|
|
615
634
|
|
|
635
|
+
// Web mirror of native's footer inset (`contentInsetAdjustment`
|
|
636
|
+
// 'automatic' | 'footer'): pad the plugged scrollable by how much the
|
|
637
|
+
// absolute footer covers it. Measured from layout offsets (not client rects)
|
|
638
|
+
// so in-flight transforms don't skew it — the footer's bottom sits at the
|
|
639
|
+
// visible bottom of the layout container, so only a scroller reaching that
|
|
640
|
+
// edge gets an inset, and a safe-area lift (or a short scroller) shrinks it.
|
|
641
|
+
// Padding on the scroll container extends its scrollable overflow, like a
|
|
642
|
+
// native content inset.
|
|
643
|
+
const insetBehavior = scrollableOptions?.contentInsetAdjustment ?? 'automatic';
|
|
644
|
+
const footerInsetAdjustment = Boolean(footer) && absoluteFooter && (insetBehavior === 'automatic' || insetBehavior === 'footer');
|
|
645
|
+
useEffect(() => {
|
|
646
|
+
if (!isOpen || !footerInsetAdjustment || !scrollableRef) return undefined;
|
|
647
|
+
let canceled = false;
|
|
648
|
+
let rafId = 0;
|
|
649
|
+
let mutationObserver = null;
|
|
650
|
+
let resizeObserver = null;
|
|
651
|
+
let scroller = null;
|
|
652
|
+
const reset = () => {
|
|
653
|
+
if (scroller) scroller.style.paddingBottom = '';
|
|
654
|
+
footerInsetRef.current = 0;
|
|
655
|
+
};
|
|
656
|
+
const apply = () => {
|
|
657
|
+
const footerEl = getDOMElement(footerElRef.current);
|
|
658
|
+
const container = sizedLayoutRef.current ?? drawerContentRef.current;
|
|
659
|
+
if (!scroller?.isConnected || !footerEl || !container) return;
|
|
660
|
+
|
|
661
|
+
// Measure without our own padding so an unbounded scroller (sized by its
|
|
662
|
+
// content) doesn't grow by the inset and feed back into the overlap.
|
|
663
|
+
scroller.style.paddingBottom = '';
|
|
664
|
+
let bottom = scroller.offsetTop + scroller.offsetHeight;
|
|
665
|
+
let el = scroller.offsetParent;
|
|
666
|
+
while (el && el !== container) {
|
|
667
|
+
bottom += el.offsetTop;
|
|
668
|
+
el = el.offsetParent;
|
|
669
|
+
}
|
|
670
|
+
const footerTop = container.offsetHeight - footerEl.offsetHeight;
|
|
671
|
+
const inset = el ? Math.max(0, bottom - footerTop) : 0;
|
|
672
|
+
footerInsetRef.current = inset;
|
|
673
|
+
scroller.style.paddingBottom = inset > 0 ? `${inset}px` : '';
|
|
674
|
+
};
|
|
675
|
+
|
|
676
|
+
// (Re)resolve the plugged scrollable — a conditional remount swaps the node
|
|
677
|
+
const observe = () => {
|
|
678
|
+
const resolved = getScrollableElement(scrollableRef.current);
|
|
679
|
+
const next = resolved?.isConnected ? resolved : null;
|
|
680
|
+
if (next === scroller && resizeObserver) return;
|
|
681
|
+
reset();
|
|
682
|
+
resizeObserver?.disconnect();
|
|
683
|
+
resizeObserver = null;
|
|
684
|
+
scroller = next;
|
|
685
|
+
if (!scroller) return;
|
|
686
|
+
resizeObserver = new ResizeObserver(apply);
|
|
687
|
+
resizeObserver.observe(scroller);
|
|
688
|
+
const footerEl = getDOMElement(footerElRef.current);
|
|
689
|
+
if (footerEl) resizeObserver.observe(footerEl);
|
|
690
|
+
const container = sizedLayoutRef.current ?? drawerContentRef.current;
|
|
691
|
+
if (container) resizeObserver.observe(container);
|
|
692
|
+
apply();
|
|
693
|
+
};
|
|
694
|
+
const attach = () => {
|
|
695
|
+
if (canceled) return;
|
|
696
|
+
const drawerEl = drawerContentRef.current;
|
|
697
|
+
if (!drawerEl || !drawerEl.isConnected) {
|
|
698
|
+
// Radix Presence defers the portal mount; poll until the drawer is live.
|
|
699
|
+
rafId = window.requestAnimationFrame(attach);
|
|
700
|
+
return;
|
|
701
|
+
}
|
|
702
|
+
observe();
|
|
703
|
+
mutationObserver = new MutationObserver(observe);
|
|
704
|
+
mutationObserver.observe(drawerEl, {
|
|
705
|
+
childList: true,
|
|
706
|
+
subtree: true
|
|
707
|
+
});
|
|
708
|
+
};
|
|
709
|
+
rafId = window.requestAnimationFrame(attach);
|
|
710
|
+
return () => {
|
|
711
|
+
canceled = true;
|
|
712
|
+
window.cancelAnimationFrame(rafId);
|
|
713
|
+
mutationObserver?.disconnect();
|
|
714
|
+
resizeObserver?.disconnect();
|
|
715
|
+
reset();
|
|
716
|
+
};
|
|
717
|
+
}, [isOpen, footerInsetAdjustment, scrollableRef]);
|
|
718
|
+
|
|
616
719
|
// Fire onMount once after first render. React-mount is the earliest point
|
|
617
720
|
// the component is ready for imperative calls, matching the native
|
|
618
721
|
// "ready for present" contract. Declared before the present/dismiss effect
|
|
@@ -1023,11 +1126,11 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
1023
1126
|
// Lift content above iOS home indicator / bottom safe area when enabled.
|
|
1024
1127
|
// A relative footer owns the inset instead (see resolvedFooterStyle); an
|
|
1025
1128
|
// absolute footer floats over the content, so the content keeps its lift.
|
|
1026
|
-
// A plugged scrollable keeps the lift too (
|
|
1027
|
-
//
|
|
1028
|
-
// with user-applied content padding.
|
|
1029
|
-
paddingBottom: insetAdjustment === 'automatic' && !(footerOwnsInset && !absoluteFooter) && (!scrollableRef ||
|
|
1030
|
-
}), [backgroundColor, effectiveCornerRadius, insetAdjustment, footerOwnsInset, absoluteFooter, scrollableRef,
|
|
1129
|
+
// A plugged scrollable keeps the lift too (contentInsetAdjustment
|
|
1130
|
+
// 'automatic' | 'safe-area') — 'footer' | 'never' scroll edge-to-edge
|
|
1131
|
+
// behind the indicator with user-applied content padding.
|
|
1132
|
+
paddingBottom: insetAdjustment === 'automatic' && !(footerOwnsInset && !absoluteFooter) && (!scrollableRef || insetBehavior === 'automatic' || insetBehavior === 'safe-area') ? 'env(safe-area-inset-bottom, 0px)' : 0
|
|
1133
|
+
}), [backgroundColor, effectiveCornerRadius, insetAdjustment, footerOwnsInset, absoluteFooter, scrollableRef, insetBehavior]);
|
|
1031
1134
|
const defaultGrabberColor = colorScheme === 'dark' ? DEFAULT_GRABBER_COLOR_DARK : DEFAULT_GRABBER_COLOR_LIGHT;
|
|
1032
1135
|
const grabberHeight = grabberOptions?.height ?? DEFAULT_GRABBER_HEIGHT;
|
|
1033
1136
|
|
|
@@ -1058,7 +1161,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
1058
1161
|
// `maxContentWidth` is ignored ('form' is absolute).
|
|
1059
1162
|
// - presentation='page' → `maxContentWidth` (any viewport) or
|
|
1060
1163
|
// DEFAULT_MAX_WIDTH (tablet/landscape readability cap).
|
|
1061
|
-
// Detached without a width constraint applies
|
|
1164
|
+
// Detached without a width constraint applies placementOffset on both edges so
|
|
1062
1165
|
// the floating card breathes from the viewport sides.
|
|
1063
1166
|
const wrapperStyle = useMemo(() => {
|
|
1064
1167
|
// Mobile portrait ignores width sizing entirely (matches iOS/Android:
|
|
@@ -1070,23 +1173,23 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
1070
1173
|
const next = {};
|
|
1071
1174
|
if (dropShadow) next.filter = dropShadow;
|
|
1072
1175
|
if (!needsMargins) return next;
|
|
1073
|
-
let
|
|
1074
|
-
let
|
|
1176
|
+
let marginInlineStart;
|
|
1177
|
+
let marginInlineEnd;
|
|
1075
1178
|
if (isFormSheet) {
|
|
1076
|
-
|
|
1077
|
-
|
|
1179
|
+
marginInlineStart = 'auto';
|
|
1180
|
+
marginInlineEnd = 'auto';
|
|
1078
1181
|
} else if (maxWidth == null) {
|
|
1079
|
-
|
|
1080
|
-
|
|
1182
|
+
marginInlineStart = placementOffset;
|
|
1183
|
+
marginInlineEnd = placementOffset;
|
|
1081
1184
|
} else {
|
|
1082
|
-
|
|
1083
|
-
|
|
1185
|
+
marginInlineStart = placement === 'leading' ? placementOffset : 'auto';
|
|
1186
|
+
marginInlineEnd = placement === 'trailing' ? placementOffset : 'auto';
|
|
1084
1187
|
}
|
|
1085
1188
|
if (maxWidth != null) next.maxWidth = maxWidth;
|
|
1086
|
-
next.
|
|
1087
|
-
next.
|
|
1189
|
+
next.marginInlineStart = marginInlineStart;
|
|
1190
|
+
next.marginInlineEnd = marginInlineEnd;
|
|
1088
1191
|
return next;
|
|
1089
|
-
}, [isLandscapeOrTablet, isFormSheet, maxContentWidth, presentation,
|
|
1192
|
+
}, [isLandscapeOrTablet, isFormSheet, maxContentWidth, presentation, placement, placementOffset, effectiveDetached, dropShadow]);
|
|
1090
1193
|
|
|
1091
1194
|
// Absolute-position the grabber so it overlays the content top-edge
|
|
1092
1195
|
// instead of consuming flow height — mirrors native iOS/Android, where
|