@lodev09/react-native-true-sheet 3.1.0-beta.4 → 3.1.0-beta.6
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/TrueSheetModule.kt +6 -6
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +6 -6
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +106 -36
- package/ios/TrueSheetModule.mm +9 -5
- package/ios/TrueSheetViewController.mm +34 -11
- package/lib/module/TrueSheet.js +12 -8
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/specs/NativeTrueSheetModule.js.map +1 -1
- package/lib/typescript/src/TrueSheet.d.ts +8 -4
- package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts +4 -2
- package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/TrueSheet.tsx +16 -8
- package/src/__mocks__/index.js +6 -5
- package/src/specs/NativeTrueSheetModule.ts +4 -2
|
@@ -46,12 +46,12 @@ class TrueSheetModule(reactContext: ReactApplicationContext) :
|
|
|
46
46
|
* @throws OPERATION_FAILED if the operation fails for any other reason
|
|
47
47
|
*/
|
|
48
48
|
@ReactMethod
|
|
49
|
-
fun presentByRef(viewTag: Double, index: Double, promise: Promise) {
|
|
49
|
+
fun presentByRef(viewTag: Double, index: Double, animated: Boolean, promise: Promise) {
|
|
50
50
|
val tag = viewTag.toInt()
|
|
51
51
|
val detentIndex = index.toInt()
|
|
52
52
|
|
|
53
53
|
withTrueSheetView(tag, promise) { view ->
|
|
54
|
-
view.present(detentIndex) {
|
|
54
|
+
view.present(detentIndex, animated) {
|
|
55
55
|
promise.resolve(null)
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -67,11 +67,11 @@ class TrueSheetModule(reactContext: ReactApplicationContext) :
|
|
|
67
67
|
* @throws OPERATION_FAILED if the operation fails for any other reason
|
|
68
68
|
*/
|
|
69
69
|
@ReactMethod
|
|
70
|
-
fun dismissByRef(viewTag: Double, promise: Promise) {
|
|
70
|
+
fun dismissByRef(viewTag: Double, animated: Boolean, promise: Promise) {
|
|
71
71
|
val tag = viewTag.toInt()
|
|
72
72
|
|
|
73
73
|
withTrueSheetView(tag, promise) { view ->
|
|
74
|
-
view.dismiss {
|
|
74
|
+
view.dismiss(animated) {
|
|
75
75
|
promise.resolve(null)
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -89,8 +89,8 @@ class TrueSheetModule(reactContext: ReactApplicationContext) :
|
|
|
89
89
|
*/
|
|
90
90
|
@ReactMethod
|
|
91
91
|
fun resizeByRef(viewTag: Double, index: Double, promise: Promise) {
|
|
92
|
-
// Resize is just an alias for present
|
|
93
|
-
presentByRef(viewTag, index, promise)
|
|
92
|
+
// Resize is just an alias for present (always animated)
|
|
93
|
+
presentByRef(viewTag, index, true, promise)
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/**
|
|
@@ -157,15 +157,15 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
|
|
|
157
157
|
override fun viewControllerWillPresent(index: Int, position: Float, detent: Float) {
|
|
158
158
|
val surfaceId = UIManagerHelper.getSurfaceId(this)
|
|
159
159
|
eventDispatcher?.dispatchEvent(WillPresentEvent(surfaceId, id, index, position, detent))
|
|
160
|
+
|
|
161
|
+
// Enable touch event dispatching to React Native
|
|
162
|
+
viewController.eventDispatcher = eventDispatcher
|
|
163
|
+
containerView?.footerView?.eventDispatcher = eventDispatcher
|
|
160
164
|
}
|
|
161
165
|
|
|
162
166
|
override fun viewControllerDidPresent(index: Int, position: Float, detent: Float) {
|
|
163
167
|
val surfaceId = UIManagerHelper.getSurfaceId(this)
|
|
164
168
|
eventDispatcher?.dispatchEvent(DidPresentEvent(surfaceId, id, index, position, detent))
|
|
165
|
-
|
|
166
|
-
// Enable touch event dispatching to React Native
|
|
167
|
-
viewController.eventDispatcher = eventDispatcher
|
|
168
|
-
containerView?.footerView?.eventDispatcher = eventDispatcher
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
override fun viewControllerWillDismiss() {
|
|
@@ -326,9 +326,9 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
|
|
|
326
326
|
}
|
|
327
327
|
|
|
328
328
|
@UiThread
|
|
329
|
-
fun dismiss(promiseCallback: () -> Unit) {
|
|
329
|
+
fun dismiss(animated: Boolean = true, promiseCallback: () -> Unit) {
|
|
330
330
|
viewController.dismissPromise = promiseCallback
|
|
331
|
-
viewController.dismiss()
|
|
331
|
+
viewController.dismiss(animated)
|
|
332
332
|
}
|
|
333
333
|
|
|
334
334
|
/**
|
|
@@ -61,9 +61,15 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
61
61
|
companion object {
|
|
62
62
|
const val TAG_NAME = "TrueSheet"
|
|
63
63
|
|
|
64
|
+
private const val MAX_HALF_EXPANDED_RATIO = 0.999f
|
|
65
|
+
|
|
64
66
|
private const val GRABBER_TAG = "TrueSheetGrabber"
|
|
65
67
|
private const val DEFAULT_MAX_WIDTH = 640 // dp
|
|
66
68
|
private const val DEFAULT_CORNER_RADIUS = 16 // dp
|
|
69
|
+
|
|
70
|
+
// Animation durations from res/anim/true_sheet_slide_in.xml and true_sheet_slide_out.xml
|
|
71
|
+
private const val PRESENT_ANIMATION_DURATION = 200L
|
|
72
|
+
private const val DISMISS_ANIMATION_DURATION = 150L
|
|
67
73
|
}
|
|
68
74
|
|
|
69
75
|
// ====================================================================
|
|
@@ -113,6 +119,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
113
119
|
private val resolvedDetentPositions = mutableListOf<Int>()
|
|
114
120
|
|
|
115
121
|
private var isDragging = false
|
|
122
|
+
private var isDismissing = false
|
|
116
123
|
private var isReconfiguring = false
|
|
117
124
|
private var windowAnimation: Int = 0
|
|
118
125
|
private var lastEmittedPositionPx: Int = -1
|
|
@@ -270,6 +277,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
270
277
|
|
|
271
278
|
dialog = null
|
|
272
279
|
isDragging = false
|
|
280
|
+
isDismissing = false
|
|
273
281
|
isPresented = false
|
|
274
282
|
isDialogVisible = false
|
|
275
283
|
lastEmittedPositionPx = -1
|
|
@@ -284,43 +292,51 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
284
292
|
setupGrabber()
|
|
285
293
|
|
|
286
294
|
sheetContainer?.post {
|
|
287
|
-
val detentInfo = getDetentInfoForIndex(currentDetentIndex)
|
|
288
|
-
val detent = getDetentValueForIndex(detentInfo.index)
|
|
289
295
|
val positionPx = bottomSheetView?.let { ScreenUtils.getScreenY(it) } ?: screenHeight
|
|
290
296
|
|
|
291
|
-
delegate?.viewControllerDidPresent(detentInfo.index, detentInfo.position, detent)
|
|
292
|
-
|
|
293
297
|
// Store resolved position for initial detent
|
|
294
|
-
storeResolvedPosition(
|
|
298
|
+
storeResolvedPosition(currentDetentIndex)
|
|
295
299
|
emitChangePositionDelegate(positionPx, realtime = false)
|
|
296
300
|
|
|
301
|
+
positionFooter()
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
// Emit didPresent/didFocus after present animation completes
|
|
305
|
+
sheetContainer?.postDelayed({
|
|
306
|
+
val detentInfo = getDetentInfoForIndex(currentDetentIndex)
|
|
307
|
+
val detent = getDetentValueForIndex(detentInfo.index)
|
|
308
|
+
|
|
309
|
+
delegate?.viewControllerDidPresent(detentInfo.index, detentInfo.position, detent)
|
|
310
|
+
|
|
297
311
|
// Notify parent sheet that it has lost focus (after this sheet appeared)
|
|
298
312
|
parentSheetView?.viewControllerDidBlur()
|
|
299
313
|
|
|
314
|
+
// Emit didFocus with didPresent
|
|
315
|
+
delegate?.viewControllerDidFocus()
|
|
316
|
+
|
|
300
317
|
presentPromise?.invoke()
|
|
301
318
|
presentPromise = null
|
|
302
|
-
|
|
303
|
-
positionFooter()
|
|
304
|
-
}
|
|
319
|
+
}, PRESENT_ANIMATION_DURATION)
|
|
305
320
|
}
|
|
306
321
|
|
|
307
322
|
dialog.setOnCancelListener {
|
|
308
|
-
|
|
323
|
+
// Skip if already handled by STATE_HIDDEN (programmatic dismiss)
|
|
324
|
+
if (isDismissing) return@setOnCancelListener
|
|
309
325
|
|
|
310
|
-
//
|
|
311
|
-
|
|
312
|
-
|
|
326
|
+
// User-initiated dismiss (back button, tap outside)
|
|
327
|
+
isDismissing = true
|
|
328
|
+
emitWillDismissEvents()
|
|
313
329
|
|
|
314
|
-
|
|
315
|
-
|
|
330
|
+
// Emit off-screen position since onSlide isn't triggered for user-initiated dismiss
|
|
331
|
+
emitChangePositionDelegate(screenHeight, realtime = false)
|
|
316
332
|
|
|
317
|
-
//
|
|
318
|
-
|
|
319
|
-
|
|
333
|
+
// Emit didBlur/didDismiss after dismiss animation completes
|
|
334
|
+
android.os.Handler(android.os.Looper.getMainLooper()).postDelayed({
|
|
335
|
+
emitDidDismissEvents()
|
|
336
|
+
}, DISMISS_ANIMATION_DURATION)
|
|
337
|
+
}
|
|
320
338
|
|
|
321
|
-
|
|
322
|
-
dismissPromise = null
|
|
323
|
-
delegate?.viewControllerDidDismiss(hadParent)
|
|
339
|
+
dialog.setOnDismissListener {
|
|
324
340
|
cleanupDialog()
|
|
325
341
|
}
|
|
326
342
|
}
|
|
@@ -346,7 +362,10 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
346
362
|
|
|
347
363
|
override fun onStateChanged(sheetView: View, newState: Int) {
|
|
348
364
|
if (newState == BottomSheetBehavior.STATE_HIDDEN) {
|
|
349
|
-
|
|
365
|
+
// Mark as dismissing so setOnCancelListener skips emitting events
|
|
366
|
+
isDismissing = true
|
|
367
|
+
emitDidDismissEvents()
|
|
368
|
+
dialog.dismiss()
|
|
350
369
|
return
|
|
351
370
|
}
|
|
352
371
|
|
|
@@ -431,6 +450,34 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
431
450
|
rnScreensObserver = null
|
|
432
451
|
}
|
|
433
452
|
|
|
453
|
+
// ====================================================================
|
|
454
|
+
// MARK: - Dismiss Event Helpers
|
|
455
|
+
// ====================================================================
|
|
456
|
+
|
|
457
|
+
/**
|
|
458
|
+
* Emits willBlur and willDismiss events, and notifies parent sheet of upcoming focus change.
|
|
459
|
+
*/
|
|
460
|
+
private fun emitWillDismissEvents() {
|
|
461
|
+
delegate?.viewControllerWillBlur()
|
|
462
|
+
delegate?.viewControllerWillDismiss()
|
|
463
|
+
parentSheetView?.viewControllerWillFocus()
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
/**
|
|
467
|
+
* Emits didBlur and didDismiss events, notifies parent sheet, and invokes dismiss promise.
|
|
468
|
+
*/
|
|
469
|
+
private fun emitDidDismissEvents() {
|
|
470
|
+
val hadParent = parentSheetView != null
|
|
471
|
+
parentSheetView?.viewControllerDidFocus()
|
|
472
|
+
parentSheetView = null
|
|
473
|
+
|
|
474
|
+
delegate?.viewControllerDidBlur()
|
|
475
|
+
delegate?.viewControllerDidDismiss(hadParent)
|
|
476
|
+
|
|
477
|
+
dismissPromise?.invoke()
|
|
478
|
+
dismissPromise = null
|
|
479
|
+
}
|
|
480
|
+
|
|
434
481
|
// ====================================================================
|
|
435
482
|
// MARK: - Dialog Visibility (for stacking)
|
|
436
483
|
// ====================================================================
|
|
@@ -516,6 +563,9 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
516
563
|
|
|
517
564
|
delegate?.viewControllerWillPresent(detentInfo.index, detentInfo.position, detent)
|
|
518
565
|
|
|
566
|
+
// Emit willFocus with willPresent
|
|
567
|
+
delegate?.viewControllerWillFocus()
|
|
568
|
+
|
|
519
569
|
if (!animated) {
|
|
520
570
|
dialog.window?.setWindowAnimations(0)
|
|
521
571
|
}
|
|
@@ -524,12 +574,21 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
524
574
|
}
|
|
525
575
|
}
|
|
526
576
|
|
|
527
|
-
fun dismiss() {
|
|
577
|
+
fun dismiss(animated: Boolean = true) {
|
|
578
|
+
emitWillDismissEvents()
|
|
579
|
+
|
|
528
580
|
this.post {
|
|
529
581
|
// Emit off-screen position (detent = 0 since sheet is fully hidden)
|
|
530
582
|
emitChangePositionDelegate(screenHeight, realtime = false)
|
|
531
583
|
}
|
|
532
|
-
|
|
584
|
+
|
|
585
|
+
if (!animated) {
|
|
586
|
+
dialog?.window?.setWindowAnimations(0)
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
// Temporarily enable hideable to allow STATE_HIDDEN transition
|
|
590
|
+
behavior?.isHideable = true
|
|
591
|
+
behavior?.state = BottomSheetBehavior.STATE_HIDDEN
|
|
533
592
|
}
|
|
534
593
|
|
|
535
594
|
// ====================================================================
|
|
@@ -560,34 +619,44 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
560
619
|
isFitToContents = false
|
|
561
620
|
maxWidth = DEFAULT_MAX_WIDTH.dpToPx().toInt()
|
|
562
621
|
|
|
622
|
+
val oldExpandOffset = expandedOffset
|
|
623
|
+
|
|
563
624
|
when (detents.size) {
|
|
564
625
|
1 -> {
|
|
565
626
|
setPeekHeight(getDetentHeight(detents[0]), isPresented)
|
|
627
|
+
halfExpandedRatio = minOf(peekHeight.toFloat() / screenHeight.toFloat(), MAX_HALF_EXPANDED_RATIO)
|
|
566
628
|
expandedOffset = screenHeight - peekHeight
|
|
567
629
|
isFitToContents = expandedOffset == 0
|
|
568
630
|
}
|
|
569
631
|
|
|
570
632
|
2 -> {
|
|
571
633
|
setPeekHeight(getDetentHeight(detents[0]), isPresented)
|
|
572
|
-
halfExpandedRatio = minOf(getDetentHeight(detents[1]).toFloat() / screenHeight.toFloat(),
|
|
634
|
+
halfExpandedRatio = minOf(getDetentHeight(detents[1]).toFloat() / screenHeight.toFloat(), MAX_HALF_EXPANDED_RATIO)
|
|
573
635
|
expandedOffset = screenHeight - getDetentHeight(detents[1])
|
|
574
636
|
isFitToContents = expandedOffset == 0
|
|
575
637
|
}
|
|
576
638
|
|
|
577
639
|
3 -> {
|
|
578
640
|
setPeekHeight(getDetentHeight(detents[0]), isPresented)
|
|
579
|
-
halfExpandedRatio = minOf(getDetentHeight(detents[1]).toFloat() / screenHeight.toFloat(),
|
|
641
|
+
halfExpandedRatio = minOf(getDetentHeight(detents[1]).toFloat() / screenHeight.toFloat(), MAX_HALF_EXPANDED_RATIO)
|
|
580
642
|
expandedOffset = screenHeight - getDetentHeight(detents[2])
|
|
581
643
|
}
|
|
582
644
|
}
|
|
583
|
-
}
|
|
584
645
|
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
646
|
+
// Keep container size in sync with sheet size
|
|
647
|
+
if (oldExpandOffset != expandedOffset || expandedOffset == 0) {
|
|
648
|
+
val offset = if (expandedOffset == 0) statusBarHeight else 0
|
|
649
|
+
val newHeight = screenHeight - expandedOffset - offset
|
|
650
|
+
delegate?.viewControllerDidChangeSize(width, newHeight)
|
|
651
|
+
}
|
|
589
652
|
|
|
590
|
-
|
|
653
|
+
if (isPresented) {
|
|
654
|
+
// Re-apply current state to update position after config changes
|
|
655
|
+
setStateForDetentIndex(currentDetentIndex)
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
isReconfiguring = false
|
|
659
|
+
}
|
|
591
660
|
}
|
|
592
661
|
|
|
593
662
|
fun setupGrabber() {
|
|
@@ -783,7 +852,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
783
852
|
val pos = getEstimatedPositionForIndex(i)
|
|
784
853
|
val nextPos = getEstimatedPositionForIndex(i + 1)
|
|
785
854
|
|
|
786
|
-
if (positionPx
|
|
855
|
+
if (positionPx in nextPos..pos) {
|
|
787
856
|
val range = pos - nextPos
|
|
788
857
|
val progress = if (range > 0) (pos - positionPx).toFloat() / range else 0f
|
|
789
858
|
return Triple(i, i + 1, maxOf(0f, minOf(1f, progress)))
|
|
@@ -966,10 +1035,11 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
966
1035
|
super.onSizeChanged(w, h, oldw, oldh)
|
|
967
1036
|
if (w == oldw && h == oldh) return
|
|
968
1037
|
|
|
969
|
-
//
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
1038
|
+
// Skip when fully expanding to full screen (edgeToEdgeFullScreen enabled)
|
|
1039
|
+
// Size keeps changing on this case
|
|
1040
|
+
if (h + statusBarHeight > screenHeight && isExpanded && oldw == w) {
|
|
1041
|
+
return
|
|
1042
|
+
}
|
|
973
1043
|
|
|
974
1044
|
val oldScreenHeight = screenHeight
|
|
975
1045
|
screenHeight = ScreenUtils.getScreenHeight(reactContext, edgeToEdgeEnabled)
|
package/ios/TrueSheetModule.mm
CHANGED
|
@@ -46,6 +46,7 @@ RCT_EXPORT_MODULE(TrueSheetModule)
|
|
|
46
46
|
|
|
47
47
|
- (void)presentByRef:(double)viewTag
|
|
48
48
|
index:(double)index
|
|
49
|
+
animated:(BOOL)animated
|
|
49
50
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
50
51
|
reject:(RCTPromiseRejectBlock)reject {
|
|
51
52
|
RCTExecuteOnMainQueue(^{
|
|
@@ -57,7 +58,7 @@ RCT_EXPORT_MODULE(TrueSheetModule)
|
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
[trueSheetView presentAtIndex:(NSInteger)index
|
|
60
|
-
animated:
|
|
61
|
+
animated:animated
|
|
61
62
|
completion:^(BOOL success, NSError *_Nullable error) {
|
|
62
63
|
if (success) {
|
|
63
64
|
resolve(nil);
|
|
@@ -68,7 +69,10 @@ RCT_EXPORT_MODULE(TrueSheetModule)
|
|
|
68
69
|
});
|
|
69
70
|
}
|
|
70
71
|
|
|
71
|
-
- (void)dismissByRef:(double)viewTag
|
|
72
|
+
- (void)dismissByRef:(double)viewTag
|
|
73
|
+
animated:(BOOL)animated
|
|
74
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
75
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
72
76
|
RCTExecuteOnMainQueue(^{
|
|
73
77
|
TrueSheetView *trueSheetView = [TrueSheetModule getTrueSheetViewByTag:@((NSInteger)viewTag)];
|
|
74
78
|
|
|
@@ -77,7 +81,7 @@ RCT_EXPORT_MODULE(TrueSheetModule)
|
|
|
77
81
|
return;
|
|
78
82
|
}
|
|
79
83
|
|
|
80
|
-
[trueSheetView dismissAnimated:
|
|
84
|
+
[trueSheetView dismissAnimated:animated
|
|
81
85
|
completion:^(BOOL success, NSError *_Nullable error) {
|
|
82
86
|
if (success) {
|
|
83
87
|
resolve(nil);
|
|
@@ -92,8 +96,8 @@ RCT_EXPORT_MODULE(TrueSheetModule)
|
|
|
92
96
|
index:(double)index
|
|
93
97
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
94
98
|
reject:(RCTPromiseRejectBlock)reject {
|
|
95
|
-
// Resize is just present with a different index
|
|
96
|
-
[self presentByRef:viewTag index:index resolve:resolve reject:reject];
|
|
99
|
+
// Resize is just present with a different index (always animated)
|
|
100
|
+
[self presentByRef:viewTag index:index animated:YES resolve:resolve reject:reject];
|
|
97
101
|
}
|
|
98
102
|
|
|
99
103
|
#pragma mark - Helper Methods
|
|
@@ -159,15 +159,20 @@
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
163
|
+
if ([self.delegate respondsToSelector:@selector(viewControllerWillPresentAtIndex:position:detent:)]) {
|
|
164
164
|
NSInteger index = self.currentDetentIndex;
|
|
165
165
|
CGFloat position = self.currentPosition;
|
|
166
166
|
CGFloat detent = [self detentValueForIndex:index];
|
|
167
167
|
|
|
168
168
|
[self.delegate viewControllerWillPresentAtIndex:index position:position detent:detent];
|
|
169
|
-
}
|
|
170
|
-
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Emit willFocus with willPresent
|
|
172
|
+
if ([self.delegate respondsToSelector:@selector(viewControllerWillFocus)]) {
|
|
173
|
+
[self.delegate viewControllerWillFocus];
|
|
174
|
+
}
|
|
175
|
+
});
|
|
171
176
|
}
|
|
172
177
|
|
|
173
178
|
[self setupTransitionTracker];
|
|
@@ -184,13 +189,19 @@
|
|
|
184
189
|
}
|
|
185
190
|
}
|
|
186
191
|
|
|
187
|
-
|
|
188
|
-
|
|
192
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
193
|
+
if ([self.delegate respondsToSelector:@selector(viewControllerDidPresentAtIndex:position:detent:)]) {
|
|
189
194
|
NSInteger index = [self currentDetentIndex];
|
|
190
195
|
CGFloat detent = [self detentValueForIndex:index];
|
|
191
196
|
[self.delegate viewControllerDidPresentAtIndex:index position:self.currentPosition detent:detent];
|
|
192
|
-
}
|
|
193
|
-
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Emit didFocus with didPresent
|
|
200
|
+
if ([self.delegate respondsToSelector:@selector(viewControllerDidFocus)]) {
|
|
201
|
+
[self.delegate viewControllerDidFocus];
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
|
|
194
205
|
[self setupGestureRecognizer];
|
|
195
206
|
_isPresented = YES;
|
|
196
207
|
}
|
|
@@ -204,9 +215,16 @@
|
|
|
204
215
|
[super viewWillDisappear:animated];
|
|
205
216
|
|
|
206
217
|
if (self.isDismissing) {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
218
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
219
|
+
// Emit willBlur with willDismiss
|
|
220
|
+
if ([self.delegate respondsToSelector:@selector(viewControllerWillBlur)]) {
|
|
221
|
+
[self.delegate viewControllerWillBlur];
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
if ([self.delegate respondsToSelector:@selector(viewControllerWillDismiss)]) {
|
|
225
|
+
[self.delegate viewControllerWillDismiss];
|
|
226
|
+
}
|
|
227
|
+
});
|
|
210
228
|
|
|
211
229
|
// Notify the parent sheet (if any) that it is about to regain focus
|
|
212
230
|
if (_parentSheetController) {
|
|
@@ -235,6 +253,11 @@
|
|
|
235
253
|
_parentSheetController = nil;
|
|
236
254
|
}
|
|
237
255
|
|
|
256
|
+
// Emit didBlur with didDismiss
|
|
257
|
+
if ([self.delegate respondsToSelector:@selector(viewControllerDidBlur)]) {
|
|
258
|
+
[self.delegate viewControllerDidBlur];
|
|
259
|
+
}
|
|
260
|
+
|
|
238
261
|
if ([self.delegate respondsToSelector:@selector(viewControllerDidDismiss)]) {
|
|
239
262
|
[self.delegate viewControllerDidDismiss];
|
|
240
263
|
}
|
package/lib/module/TrueSheet.js
CHANGED
|
@@ -106,29 +106,31 @@ export class TrueSheet extends PureComponent {
|
|
|
106
106
|
* Present the sheet by given `name` (Promise-based)
|
|
107
107
|
* @param name - Sheet name (must match sheet's name prop)
|
|
108
108
|
* @param index - Detent index (default: 0)
|
|
109
|
+
* @param animated - Whether to animate the presentation (default: true)
|
|
109
110
|
* @returns Promise that resolves when sheet is fully presented
|
|
110
111
|
* @throws Error if sheet not found or presentation fails
|
|
111
112
|
*/
|
|
112
|
-
static async present(name, index = 0) {
|
|
113
|
+
static async present(name, index = 0, animated = true) {
|
|
113
114
|
const instance = TrueSheet.getInstance(name);
|
|
114
115
|
if (!instance) {
|
|
115
116
|
throw new Error(`Sheet with name "${name}" not found`);
|
|
116
117
|
}
|
|
117
|
-
return instance.present(index);
|
|
118
|
+
return instance.present(index, animated);
|
|
118
119
|
}
|
|
119
120
|
|
|
120
121
|
/**
|
|
121
122
|
* Dismiss the sheet by given `name` (Promise-based)
|
|
122
123
|
* @param name - Sheet name
|
|
124
|
+
* @param animated - Whether to animate the dismissal (default: true)
|
|
123
125
|
* @returns Promise that resolves when sheet is fully dismissed
|
|
124
126
|
* @throws Error if sheet not found or dismissal fails
|
|
125
127
|
*/
|
|
126
|
-
static async dismiss(name) {
|
|
128
|
+
static async dismiss(name, animated = true) {
|
|
127
129
|
const instance = TrueSheet.getInstance(name);
|
|
128
130
|
if (!instance) {
|
|
129
131
|
throw new Error(`Sheet with name "${name}" not found`);
|
|
130
132
|
}
|
|
131
|
-
return instance.dismiss();
|
|
133
|
+
return instance.dismiss(animated);
|
|
132
134
|
}
|
|
133
135
|
|
|
134
136
|
/**
|
|
@@ -213,8 +215,9 @@ export class TrueSheet extends PureComponent {
|
|
|
213
215
|
/**
|
|
214
216
|
* Present the Sheet by `index` (Promise-based)
|
|
215
217
|
* @param index - Detent index (default: 0)
|
|
218
|
+
* @param animated - Whether to animate the presentation (default: true)
|
|
216
219
|
*/
|
|
217
|
-
async present(index = 0) {
|
|
220
|
+
async present(index = 0, animated = true) {
|
|
218
221
|
const detentsLength = Math.min(this.props.detents?.length ?? 2, 3); // Max 3 detents
|
|
219
222
|
if (index < 0 || index >= detentsLength) {
|
|
220
223
|
throw new Error(`TrueSheet: present index (${index}) is out of bounds. detents array has ${detentsLength} item(s)`);
|
|
@@ -229,7 +232,7 @@ export class TrueSheet extends PureComponent {
|
|
|
229
232
|
});
|
|
230
233
|
});
|
|
231
234
|
}
|
|
232
|
-
return TrueSheetModule?.presentByRef(this.handle, index);
|
|
235
|
+
return TrueSheetModule?.presentByRef(this.handle, index, animated);
|
|
233
236
|
}
|
|
234
237
|
|
|
235
238
|
/**
|
|
@@ -242,9 +245,10 @@ export class TrueSheet extends PureComponent {
|
|
|
242
245
|
|
|
243
246
|
/**
|
|
244
247
|
* Dismisses the Sheet
|
|
248
|
+
* @param animated - Whether to animate the dismissal (default: true)
|
|
245
249
|
*/
|
|
246
|
-
async dismiss() {
|
|
247
|
-
return TrueSheetModule?.dismissByRef(this.handle);
|
|
250
|
+
async dismiss(animated = true) {
|
|
251
|
+
return TrueSheetModule?.dismissByRef(this.handle, animated);
|
|
248
252
|
}
|
|
249
253
|
componentDidMount() {
|
|
250
254
|
this.registerInstance();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","processColor","StyleSheet","findNodeHandle","View","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","ANDROID_HITBOX_HEIGHT","Error","TrueSheet","displayName","instances","presentationResolver","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","onBackPress","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","dismiss","resize","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","draggable","grabber","grabberOptions","dimmed","initialDetentAnimated","keyboardMode","dimmedDetentIndex","blurTint","blurOptions","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableAndroidContent","ref","sheetView","background","color","OS","collapsable","grabberHitbox","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis","height"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":";;AAAA,SACEA,aAAa,EAEbC,SAAS,EAGTC,cAAc,EACdC,aAAa,QACR,OAAO;AAoBd,OAAOC,4BAA4B,MAAM,uCAAuC;AAChF,OAAOC,qCAAqC,MAAM,gDAAgD;AAClG,OAAOC,mCAAmC,MAAM,8CAA8C;AAC9F,OAAOC,kCAAkC,MAAM,6CAA6C;AAC5F,OAAOC,kCAAkC,MAAM,6CAA6C;AAE5F,OAAOC,eAAe,MAAM,kCAA+B;AAE3D,SAASC,QAAQ,EAAEC,YAAY,EAAEC,UAAU,EAAEC,cAAc,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAExF,MAAMC,aAAa,GACjB,2FAA2F,GAC3FT,QAAQ,CAACU,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B,GAC/B,iDAAiD;;AAEnD;AACA,MAAMC,qBAAqB,GAAG,EAAE;AAEhC,IAAI,CAACd,eAAe,EAAE;EACpB,MAAM,IAAIe,KAAK,CAACL,aAAa,CAAC;AAChC;AAQA,OAAO,MAAMM,SAAS,SAASzB,aAAa,CAAiC;EAC3E0B,WAAW,GAAG,WAAW;EAIzB;AACF;AACA;EACE,OAAwBC,SAAS,GAAkC,CAAC,CAAC;;EAErE;AACF;AACA;EACUC,oBAAoB,GAAwB,IAAI;EAExDC,WAAWA,CAACC,KAAqB,EAAE;IACjC,KAAK,CAACA,KAAK,CAAC;IAEZ,IAAI,CAACC,SAAS,gBAAG9B,SAAS,CAAY,CAAC;IAEvC,IAAI,CAAC+B,eAAe,CAAC,CAAC;;IAEtB;IACA,MAAMC,uBAAuB,GAC3BH,KAAK,CAACI,kBAAkB,KAAKC,SAAS,IAAIL,KAAK,CAACI,kBAAkB,IAAI,CAAC;IAEzE,IAAI,CAACE,KAAK,GAAG;MACXC,sBAAsB,EAAEJ;IAC1B,CAAC;IAED,IAAI,CAACK,OAAO,GAAG,IAAI,CAACA,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC;IACtC,IAAI,CAACC,aAAa,GAAG,IAAI,CAACA,aAAa,CAACD,IAAI,CAAC,IAAI,CAAC;IAClD,IAAI,CAACE,YAAY,GAAG,IAAI,CAACA,YAAY,CAACF,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACG,aAAa,GAAG,IAAI,CAACA,aAAa,CAACH,IAAI,CAAC,IAAI,CAAC;IAClD,IAAI,CAACI,YAAY,GAAG,IAAI,CAACA,YAAY,CAACJ,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACK,cAAc,GAAG,IAAI,CAACA,cAAc,CAACL,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,CAACM,WAAW,GAAG,IAAI,CAACA,WAAW,CAACN,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACO,YAAY,GAAG,IAAI,CAACA,YAAY,CAACP,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACQ,SAAS,GAAG,IAAI,CAACA,SAAS,CAACR,IAAI,CAAC,IAAI,CAAC;IAC1C,IAAI,CAACS,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACT,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACU,WAAW,GAAG,IAAI,CAACA,WAAW,CAACV,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACW,UAAU,GAAG,IAAI,CAACA,UAAU,CAACX,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,CAACY,UAAU,GAAG,IAAI,CAACA,UAAU,CAACZ,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,CAACa,SAAS,GAAG,IAAI,CAACA,SAAS,CAACb,IAAI,CAAC,IAAI,CAAC;IAC1C,IAAI,CAACc,WAAW,GAAG,IAAI,CAACA,WAAW,CAACd,IAAI,CAAC,IAAI,CAAC;EAChD;EAEQP,eAAeA,CAAA,EAAS;IAC9B,MAAM;MAAEsB,OAAO;MAAEpB;IAAmB,CAAC,GAAG,IAAI,CAACJ,KAAK;;IAElD;IACA,IAAIwB,OAAO,IAAIA,OAAO,CAACC,MAAM,GAAG,CAAC,EAAE;MACjCC,OAAO,CAACC,IAAI,CACV,gCAAgCH,OAAO,CAACC,MAAM,yDAChD,CAAC;IACH;;IAEA;IACA,IAAID,OAAO,EAAE;MACXA,OAAO,CAACI,OAAO,CAAC,CAACC,MAAM,EAAEC,KAAK,KAAK;QACjC,IAAID,MAAM,KAAK,MAAM,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;UACnD,IAAIA,MAAM,IAAI,CAAC,IAAIA,MAAM,GAAG,CAAC,EAAE;YAC7BH,OAAO,CAACC,IAAI,CACV,8BAA8BG,KAAK,KAAKD,MAAM,kDAChD,CAAC;UACH;QACF;MACF,CAAC,CAAC;IACJ;;IAEA;IACA,IAAIzB,kBAAkB,KAAKC,SAAS,IAAID,kBAAkB,IAAI,CAAC,EAAE;MAC/D,MAAM2B,aAAa,GAAGC,IAAI,CAACC,GAAG,CAACT,OAAO,EAAEC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MACzD,IAAIrB,kBAAkB,IAAI2B,aAAa,EAAE;QACvC,MAAM,IAAIrC,KAAK,CACb,kCAAkCU,kBAAkB,yCAAyC2B,aAAa,UAC5G,CAAC;MACH;IACF;EACF;EAEA,OAAeG,WAAWA,CAACC,IAAY,EAAE;IACvC,MAAMC,QAAQ,GAAGzC,SAAS,CAACE,SAAS,CAACsC,IAAI,CAAC;IAC1C,IAAI,CAACC,QAAQ,EAAE;MACbV,OAAO,CAACC,IAAI,CAAC,gDAAgDQ,IAAI,0BAA0B,CAAC;MAC5F;IACF;IAEA,OAAOC,QAAQ;EACjB;EAEA,IAAYC,MAAMA,CAAA,EAAW;IAC3B,MAAMC,UAAU,GAAGvD,cAAc,CAAC,IAAI,CAACkB,SAAS,CAACsC,OAAO,CAAC;IACzD,IAAID,UAAU,IAAI,IAAI,IAAIA,UAAU,KAAK,CAAC,CAAC,EAAE;MAC3C,MAAM,IAAI5C,KAAK,CAAC,+BAA+B,CAAC;IAClD;IAEA,OAAO4C,UAAU;EACnB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,aAAoBE,OAAOA,CAACL,IAAY,EAAEL,KAAa,GAAG,CAAC,EAAiB;IAC1E,MAAMM,QAAQ,GAAGzC,SAAS,CAACuC,WAAW,CAACC,IAAI,CAAC;IAC5C,IAAI,CAACC,QAAQ,EAAE;MACb,MAAM,IAAI1C,KAAK,CAAC,oBAAoByC,IAAI,aAAa,CAAC;IACxD;IAEA,OAAOC,QAAQ,CAACI,OAAO,CAACV,KAAK,CAAC;EAChC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,aAAoBW,OAAOA,CAACN,IAAY,EAAiB;IACvD,MAAMC,QAAQ,GAAGzC,SAAS,CAACuC,WAAW,CAACC,IAAI,CAAC;IAC5C,IAAI,CAACC,QAAQ,EAAE;MACb,MAAM,IAAI1C,KAAK,CAAC,oBAAoByC,IAAI,aAAa,CAAC;IACxD;IAEA,OAAOC,QAAQ,CAACK,OAAO,CAAC,CAAC;EAC3B;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,aAAoBC,MAAMA,CAACP,IAAY,EAAEL,KAAa,EAAiB;IACrE,MAAMM,QAAQ,GAAGzC,SAAS,CAACuC,WAAW,CAACC,IAAI,CAAC;IAC5C,IAAI,CAACC,QAAQ,EAAE;MACb,MAAM,IAAI1C,KAAK,CAAC,oBAAoByC,IAAI,aAAa,CAAC;IACxD;IAEA,OAAOC,QAAQ,CAACM,MAAM,CAACZ,KAAK,CAAC;EAC/B;EAEQa,gBAAgBA,CAAA,EAAS;IAC/B,IAAI,IAAI,CAAC3C,KAAK,CAACmC,IAAI,EAAE;MACnBxC,SAAS,CAACE,SAAS,CAAC,IAAI,CAACG,KAAK,CAACmC,IAAI,CAAC,GAAG,IAAI;IAC7C;EACF;EAEQS,kBAAkBA,CAAA,EAAS;IACjC,IAAI,IAAI,CAAC5C,KAAK,CAACmC,IAAI,EAAE;MACnB,OAAOxC,SAAS,CAACE,SAAS,CAAC,IAAI,CAACG,KAAK,CAACmC,IAAI,CAAC;IAC7C;EACF;EAEQrB,cAAcA,CAAC+B,KAAwB,EAAQ;IACrD,IAAI,CAAC7C,KAAK,CAACc,cAAc,GAAG+B,KAAK,CAAC;EACpC;EAEQjC,aAAaA,CAACiC,KAAuB,EAAQ;IACnD,IAAI,CAAC7C,KAAK,CAACY,aAAa,GAAGiC,KAAK,CAAC;EACnC;EAEQhC,YAAYA,CAACgC,KAAsB,EAAQ;IACjD,IAAI,CAAC7C,KAAK,CAACa,YAAY,GAAGgC,KAAK,CAAC;EAClC;EAEQnC,aAAaA,CAACmC,KAAuB,EAAQ;IACnD,IAAI,CAAC7C,KAAK,CAACU,aAAa,GAAGmC,KAAK,CAAC;EACnC;EAEQlC,YAAYA,CAACkC,KAAsB,EAAQ;IACjD;IACA,IAAI,CAACC,QAAQ,CAAC;MAAEvC,sBAAsB,EAAE;IAAM,CAAC,CAAC;IAChD,IAAI,CAACP,KAAK,CAACW,YAAY,GAAGkC,KAAK,CAAC;EAClC;EAEQrC,OAAOA,CAACqC,KAAiB,EAAQ;IACvC;IACA,IAAI,IAAI,CAAC/C,oBAAoB,EAAE;MAC7B,IAAI,CAACA,oBAAoB,CAAC,CAAC;MAC3B,IAAI,CAACA,oBAAoB,GAAG,IAAI;IAClC;IAEA,IAAI,CAACE,KAAK,CAACQ,OAAO,GAAGqC,KAAK,CAAC;EAC7B;EAEQ9B,WAAWA,CAAC8B,KAAqB,EAAQ;IAC/C,IAAI,CAAC7C,KAAK,CAACe,WAAW,GAAG8B,KAAK,CAAC;EACjC;EAEQ7B,YAAYA,CAAC6B,KAAsB,EAAQ;IACjD,IAAI,CAAC7C,KAAK,CAACgB,YAAY,GAAG6B,KAAK,CAAC;EAClC;EAEQ5B,SAASA,CAAC4B,KAAmB,EAAQ;IAC3C,IAAI,CAAC7C,KAAK,CAACiB,SAAS,GAAG4B,KAAK,CAAC;EAC/B;EAEQ3B,gBAAgBA,CAAC2B,KAA0B,EAAQ;IACzD,IAAI,CAAC7C,KAAK,CAACkB,gBAAgB,GAAG2B,KAAK,CAAC;EACtC;EAEQ1B,WAAWA,CAAC0B,KAAqB,EAAQ;IAC/C,IAAI,CAAC7C,KAAK,CAACmB,WAAW,GAAG0B,KAAK,CAAC;EACjC;EAEQzB,UAAUA,CAACyB,KAAoB,EAAQ;IAC7C,IAAI,CAAC7C,KAAK,CAACoB,UAAU,GAAGyB,KAAK,CAAC;EAChC;EAEQxB,UAAUA,CAACwB,KAAoB,EAAQ;IAC7C,IAAI,CAAC7C,KAAK,CAACqB,UAAU,GAAGwB,KAAK,CAAC;EAChC;EAEQvB,SAASA,CAACuB,KAAmB,EAAQ;IAC3C,IAAI,CAAC7C,KAAK,CAACsB,SAAS,GAAGuB,KAAK,CAAC;EAC/B;EAEQtB,WAAWA,CAACsB,KAAqB,EAAQ;IAC/C,IAAI,CAAC7C,KAAK,CAACuB,WAAW,GAAGsB,KAAK,CAAC;EACjC;;EAEA;AACF;AACA;AACA;EACE,MAAaL,OAAOA,CAACV,KAAa,GAAG,CAAC,EAAiB;IACrD,MAAMC,aAAa,GAAGC,IAAI,CAACC,GAAG,CAAC,IAAI,CAACjC,KAAK,CAACwB,OAAO,EAAEC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,IAAIK,KAAK,GAAG,CAAC,IAAIA,KAAK,IAAIC,aAAa,EAAE;MACvC,MAAM,IAAIrC,KAAK,CACb,6BAA6BoC,KAAK,yCAAyCC,aAAa,UAC1F,CAAC;IACH;;IAEA;IACA,IAAI,CAAC,IAAI,CAACzB,KAAK,CAACC,sBAAsB,EAAE;MACtC,MAAM,IAAIwC,OAAO,CAAQC,OAAO,IAAK;QACnC,IAAI,CAAClD,oBAAoB,GAAGkD,OAAO;QACnC,IAAI,CAACF,QAAQ,CAAC;UAAEvC,sBAAsB,EAAE;QAAK,CAAC,CAAC;MACjD,CAAC,CAAC;IACJ;IAEA,OAAO5B,eAAe,EAAEsE,YAAY,CAAC,IAAI,CAACZ,MAAM,EAAEP,KAAK,CAAC;EAC1D;;EAEA;AACF;AACA;AACA;EACE,MAAaY,MAAMA,CAACZ,KAAa,EAAiB;IAChD,MAAM,IAAI,CAACU,OAAO,CAACV,KAAK,CAAC;EAC3B;;EAEA;AACF;AACA;EACE,MAAaW,OAAOA,CAAA,EAAkB;IACpC,OAAO9D,eAAe,EAAEuE,YAAY,CAAC,IAAI,CAACb,MAAM,CAAC;EACnD;EAEAc,iBAAiBA,CAAA,EAAS;IACxB,IAAI,CAACR,gBAAgB,CAAC,CAAC;EACzB;EAEAS,kBAAkBA,CAACC,SAAyB,EAAQ;IAClD,IAAI,CAACV,gBAAgB,CAAC,CAAC;;IAEvB;IACA,IAAIU,SAAS,CAAC7B,OAAO,KAAK,IAAI,CAACxB,KAAK,CAACwB,OAAO,EAAE;MAC5C,IAAI,CAACtB,eAAe,CAAC,CAAC;IACxB;EACF;EAEAoD,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,CAACV,kBAAkB,CAAC,CAAC;;IAEzB;IACA,IAAI,CAAC9C,oBAAoB,GAAG,IAAI;EAClC;EAEAyD,MAAMA,CAAA,EAAc;IAClB,MAAM;MACJ/B,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;MAClBgC,eAAe;MACfC,WAAW,GAAG,IAAI;MAClBC,SAAS,GAAG,IAAI;MAChBC,OAAO,GAAG,IAAI;MACdC,cAAc;MACdC,MAAM,GAAG,IAAI;MACbzD,kBAAkB,GAAG,CAAC,CAAC;MACvB0D,qBAAqB,GAAG,IAAI;MAC5BC,YAAY,GAAG,QAAQ;MACvBC,iBAAiB;MACjBC,QAAQ;MACRC,WAAW;MACXC,YAAY;MACZC,SAAS;MACTC,oBAAoB;MACpBC,UAAU,GAAG,KAAK;MAClBC,UAAU,GAAG,IAAI;MACjBC,QAAQ;MACRC,KAAK;MACLC,MAAM;MACNC,MAAM;MACN,GAAGC;IACL,CAAC,GAAG,IAAI,CAAC5E,KAAK;;IAEd;IACA,MAAM6E,eAAe,GAAGrD,OAAO,CAACsD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,GAAG,CAAElD,MAAM,IAAK;MAC1D,IAAIA,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;;MAEjD;MACA,IAAIA,MAAM,IAAI,CAAC,EAAE,OAAO,GAAG;;MAE3B;MACA,OAAOG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,MAAM,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAMmD,cAAc,GAClB,IAAI,CAAChF,KAAK,CAACsE,UAAU,IACrB1F,QAAQ,CAACU,MAAM,CAAC;MACd2F,OAAO,EAAEC,MAAM,CAACC;IAClB,CAAC,CAAC;IAEJ,MAAMC,YAAY,GAChB,IAAI,CAACpF,KAAK,CAACsE,UAAU,IACrB1F,QAAQ,CAACU,MAAM,CAAC;MACd2F,OAAO,EAAEC,MAAM,CAACG;IAClB,CAAC,CAAC;IAEJ,oBACEnG,IAAA,CAACZ,4BAA4B;MAAA,GACvBsG,IAAI;MACRU,GAAG,EAAE,IAAI,CAACrF,SAAU;MACpBwE,KAAK,EAAES,MAAM,CAACK,SAAU;MACxB/D,OAAO,EAAEqD,eAAgB;MACzBZ,QAAQ,EAAEA,QAAS;MACnBC,WAAW,EAAEA,WAAY;MACzBsB,UAAU,EAAG3G,YAAY,CAAC2E,eAAe,CAAC,IAAe,CAAE;MAC3DW,YAAY,EAAEA,YAAa;MAC3BR,OAAO,EAAEA,OAAQ;MACjBC,cAAc,EAAE;QACd,GAAGA,cAAc;QACjB6B,KAAK,EAAG5G,YAAY,CAAC+E,cAAc,EAAE6B,KAAK,CAAC,IAAe;MAC5D,CAAE;MACF5B,MAAM,EAAEA,MAAO;MACfG,iBAAiB,EAAEA,iBAAkB;MACrCD,YAAY,EAAEA,YAAa;MAC3B3D,kBAAkB,EAAEA,kBAAmB;MACvC0D,qBAAqB,EAAEA,qBAAsB;MAC7CL,WAAW,EAAEA,WAAY;MACzBC,SAAS,EAAEA,SAAU;MACrBU,SAAS,EAAEA,SAAU;MACrBC,oBAAoB,EAAEA,oBAAqB;MAC3CC,UAAU,EAAEA,UAAW;MACvBC,UAAU,EAAEA,UAAW;MACvB/D,OAAO,EAAE,IAAI,CAACA,OAAQ;MACtBI,aAAa,EAAE,IAAI,CAACA,aAAc;MAClCC,YAAY,EAAE,IAAI,CAACA,YAAa;MAChCH,aAAa,EAAE,IAAI,CAACA,aAAc;MAClCC,YAAY,EAAE,IAAI,CAACA,YAAa;MAChCG,cAAc,EAAE,IAAI,CAACA,cAAe;MACpCC,WAAW,EAAE,IAAI,CAACA,WAAY;MAC9BC,YAAY,EAAE,IAAI,CAACA,YAAa;MAChCC,SAAS,EAAE,IAAI,CAACA,SAAU;MAC1BC,gBAAgB,EAAE,IAAI,CAACA,gBAAiB;MACxCC,WAAW,EAAE,IAAI,CAACA,WAAY;MAC9BC,UAAU,EAAE,IAAI,CAACA,UAAW;MAC5BC,UAAU,EAAE,IAAI,CAACA,UAAW;MAC5BC,SAAS,EAAE,IAAI,CAACA,SAAU;MAC1BC,WAAW,EAAE,IAAI,CAACA,WAAY;MAAAiD,QAAA,EAE7B,IAAI,CAAClE,KAAK,CAACC,sBAAsB,iBAChCnB,KAAA,CAACb,qCAAqC;QAACkG,KAAK,EAAEO,cAAe;QAAAR,QAAA,GAC1DE,MAAM,iBACLxF,IAAA,CAACT,kCAAkC;UAAA+F,QAAA,EAChC,aAAApG,cAAc,CAACsG,MAAM,CAAC,GAAGA,MAAM,gBAAGrG,aAAa,CAACqG,MAAM;QAAC,CACtB,CACrC,eACDxF,IAAA,CAACV,mCAAmC;UAACiG,KAAK,EAAE,CAACA,KAAK,EAAEW,YAAY,CAAE;UAAAZ,QAAA,EAC/DA;QAAQ,CAC0B,CAAC,EACrCG,MAAM,iBACLzF,IAAA,CAACR,kCAAkC;UAAC+F,KAAK,EAAES,MAAM,CAACP,MAAO;UAAAH,QAAA,EACtD,aAAApG,cAAc,CAACuG,MAAM,CAAC,GAAGA,MAAM,gBAAGtG,aAAa,CAACsG,MAAM;QAAC,CACtB,CACrC,EACA/F,QAAQ,CAAC8G,EAAE,KAAK,SAAS,IAAI/B,OAAO,IAAID,SAAS,iBAChDxE,IAAA,CAACF,IAAI;UAAC2G,WAAW,EAAE,KAAM;UAAClB,KAAK,EAAES,MAAM,CAACU;QAAc,CAAE,CACzD;MAAA,CACoC;IACxC,CAC2B,CAAC;EAEnC;AACF;AAEA,MAAMV,MAAM,GAAGpG,UAAU,CAAC+G,MAAM,CAAC;EAC/BN,SAAS,EAAE;IACTO,MAAM,EAAE,CAAC,IAAI;IACbC,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IAER;IACAC,MAAM,EAAEvH,QAAQ,CAACU,MAAM,CAAC;MAAE2F,OAAO,EAAE;IAAE,CAAC;EACxC,CAAC;EACDE,0BAA0B,EAAE;IAC1BY,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV,CAAC;EACDd,wBAAwB,EAAE;IACxBe,QAAQ,EAAE,CAAC;IACXC,SAAS,EAAE;EACb,CAAC;EACD1B,MAAM,EAAE;IACNoB,QAAQ,EAAE,UAAU;IACpBE,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE;EACT,CAAC;EACDN,aAAa,EAAE;IACbG,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRI,MAAM,EAAE7G;EACV;AACF,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","processColor","StyleSheet","findNodeHandle","View","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","ANDROID_HITBOX_HEIGHT","Error","TrueSheet","displayName","instances","presentationResolver","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","onBackPress","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","animated","dismiss","resize","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","draggable","grabber","grabberOptions","dimmed","initialDetentAnimated","keyboardMode","dimmedDetentIndex","blurTint","blurOptions","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableAndroidContent","ref","sheetView","background","color","OS","collapsable","grabberHitbox","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis","height"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeTrueSheetModule.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeTrueSheetModule.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,mBAAmB,QAAQ,cAAc;AA+BlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,iBAAiB,CAAC","ignoreList":[]}
|
|
@@ -22,17 +22,19 @@ export declare class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetSt
|
|
|
22
22
|
* Present the sheet by given `name` (Promise-based)
|
|
23
23
|
* @param name - Sheet name (must match sheet's name prop)
|
|
24
24
|
* @param index - Detent index (default: 0)
|
|
25
|
+
* @param animated - Whether to animate the presentation (default: true)
|
|
25
26
|
* @returns Promise that resolves when sheet is fully presented
|
|
26
27
|
* @throws Error if sheet not found or presentation fails
|
|
27
28
|
*/
|
|
28
|
-
static present(name: string, index?: number): Promise<void>;
|
|
29
|
+
static present(name: string, index?: number, animated?: boolean): Promise<void>;
|
|
29
30
|
/**
|
|
30
31
|
* Dismiss the sheet by given `name` (Promise-based)
|
|
31
32
|
* @param name - Sheet name
|
|
33
|
+
* @param animated - Whether to animate the dismissal (default: true)
|
|
32
34
|
* @returns Promise that resolves when sheet is fully dismissed
|
|
33
35
|
* @throws Error if sheet not found or dismissal fails
|
|
34
36
|
*/
|
|
35
|
-
static dismiss(name: string): Promise<void>;
|
|
37
|
+
static dismiss(name: string, animated?: boolean): Promise<void>;
|
|
36
38
|
/**
|
|
37
39
|
* Resize the sheet by given `name` (Promise-based)
|
|
38
40
|
* @param name - Sheet name
|
|
@@ -61,8 +63,9 @@ export declare class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetSt
|
|
|
61
63
|
/**
|
|
62
64
|
* Present the Sheet by `index` (Promise-based)
|
|
63
65
|
* @param index - Detent index (default: 0)
|
|
66
|
+
* @param animated - Whether to animate the presentation (default: true)
|
|
64
67
|
*/
|
|
65
|
-
present(index?: number): Promise<void>;
|
|
68
|
+
present(index?: number, animated?: boolean): Promise<void>;
|
|
66
69
|
/**
|
|
67
70
|
* Resizes the Sheet programmatically by `index`.
|
|
68
71
|
* This is an alias of the `present(index)` method.
|
|
@@ -70,8 +73,9 @@ export declare class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetSt
|
|
|
70
73
|
resize(index: number): Promise<void>;
|
|
71
74
|
/**
|
|
72
75
|
* Dismisses the Sheet
|
|
76
|
+
* @param animated - Whether to animate the dismissal (default: true)
|
|
73
77
|
*/
|
|
74
|
-
dismiss(): Promise<void>;
|
|
78
|
+
dismiss(animated?: boolean): Promise<void>;
|
|
75
79
|
componentDidMount(): void;
|
|
76
80
|
componentDidUpdate(prevProps: TrueSheetProps): void;
|
|
77
81
|
componentWillUnmount(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheet.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,cAAc,EAgBf,MAAM,mBAAmB,CAAC;AA2B3B,UAAU,cAAc;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,SAAU,SAAQ,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC;IAC1E,WAAW,SAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAEtE;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAA6B;gBAE7C,KAAK,EAAE,cAAc;IAgCjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED
|
|
1
|
+
{"version":3,"file":"TrueSheet.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,cAAc,EAgBf,MAAM,mBAAmB,CAAC;AA2B3B,UAAU,cAAc;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,SAAU,SAAQ,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC;IAC1E,WAAW,SAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAEtE;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAA6B;gBAE7C,KAAK,EAAE,cAAc;IAgCjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;;;OAOG;WACiB,OAAO,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAU,EACjB,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;OAMG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASlF;;;;;;OAMG;WACiB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACU,OAAO,CAAC,KAAK,GAAE,MAAU,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBhF;;;OAGG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;;OAGG;IACU,OAAO,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;CAmHpB"}
|
|
@@ -10,17 +10,19 @@ interface Spec extends TurboModule {
|
|
|
10
10
|
* Present a sheet by reference
|
|
11
11
|
* @param viewTag - Native view tag of the sheet component
|
|
12
12
|
* @param index - Detent index to present at
|
|
13
|
+
* @param animated - Whether to animate the presentation
|
|
13
14
|
* @returns Promise that resolves when sheet is fully presented
|
|
14
15
|
* @throws PRESENT_FAILED if presentation fails
|
|
15
16
|
*/
|
|
16
|
-
presentByRef(viewTag: number, index: number): Promise<void>;
|
|
17
|
+
presentByRef(viewTag: number, index: number, animated: boolean): Promise<void>;
|
|
17
18
|
/**
|
|
18
19
|
* Dismiss a sheet by reference
|
|
19
20
|
* @param viewTag - Native view tag of the sheet component
|
|
21
|
+
* @param animated - Whether to animate the dismissal
|
|
20
22
|
* @returns Promise that resolves when sheet is fully dismissed
|
|
21
23
|
* @throws DISMISS_FAILED if dismissal fails
|
|
22
24
|
*/
|
|
23
|
-
dismissByRef(viewTag: number): Promise<void>;
|
|
25
|
+
dismissByRef(viewTag: number, animated: boolean): Promise<void>;
|
|
24
26
|
/**
|
|
25
27
|
* Resize a sheet to a different index by reference
|
|
26
28
|
* @param viewTag - Native view tag of the sheet component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeTrueSheetModule.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeTrueSheetModule.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,UAAU,IAAK,SAAQ,WAAW;IAChC
|
|
1
|
+
{"version":3,"file":"NativeTrueSheetModule.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeTrueSheetModule.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,UAAU,IAAK,SAAQ,WAAW;IAChC;;;;;;;OAOG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;;;;;OAMG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;;AAED,wBAAgE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodev09/react-native-true-sheet",
|
|
3
|
-
"version": "3.1.0-beta.
|
|
3
|
+
"version": "3.1.0-beta.6",
|
|
4
4
|
"description": "The true native bottom sheet experience for your React Native Apps.",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./lib/module/index.js",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"@eslint/js": "^9.35.0",
|
|
81
81
|
"@evilmartians/lefthook": "^2.0.4",
|
|
82
82
|
"@react-native/babel-preset": "^0.82.1",
|
|
83
|
-
"@react-native/eslint-config": "^0.
|
|
83
|
+
"@react-native/eslint-config": "^0.82.1",
|
|
84
84
|
"@release-it/conventional-changelog": "^10.0.1",
|
|
85
85
|
"@testing-library/react-native": "^13.3.3",
|
|
86
86
|
"@types/babel__core": "^7",
|
package/src/TrueSheet.tsx
CHANGED
|
@@ -160,31 +160,37 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
160
160
|
* Present the sheet by given `name` (Promise-based)
|
|
161
161
|
* @param name - Sheet name (must match sheet's name prop)
|
|
162
162
|
* @param index - Detent index (default: 0)
|
|
163
|
+
* @param animated - Whether to animate the presentation (default: true)
|
|
163
164
|
* @returns Promise that resolves when sheet is fully presented
|
|
164
165
|
* @throws Error if sheet not found or presentation fails
|
|
165
166
|
*/
|
|
166
|
-
public static async present(
|
|
167
|
+
public static async present(
|
|
168
|
+
name: string,
|
|
169
|
+
index: number = 0,
|
|
170
|
+
animated: boolean = true
|
|
171
|
+
): Promise<void> {
|
|
167
172
|
const instance = TrueSheet.getInstance(name);
|
|
168
173
|
if (!instance) {
|
|
169
174
|
throw new Error(`Sheet with name "${name}" not found`);
|
|
170
175
|
}
|
|
171
176
|
|
|
172
|
-
return instance.present(index);
|
|
177
|
+
return instance.present(index, animated);
|
|
173
178
|
}
|
|
174
179
|
|
|
175
180
|
/**
|
|
176
181
|
* Dismiss the sheet by given `name` (Promise-based)
|
|
177
182
|
* @param name - Sheet name
|
|
183
|
+
* @param animated - Whether to animate the dismissal (default: true)
|
|
178
184
|
* @returns Promise that resolves when sheet is fully dismissed
|
|
179
185
|
* @throws Error if sheet not found or dismissal fails
|
|
180
186
|
*/
|
|
181
|
-
public static async dismiss(name: string): Promise<void> {
|
|
187
|
+
public static async dismiss(name: string, animated: boolean = true): Promise<void> {
|
|
182
188
|
const instance = TrueSheet.getInstance(name);
|
|
183
189
|
if (!instance) {
|
|
184
190
|
throw new Error(`Sheet with name "${name}" not found`);
|
|
185
191
|
}
|
|
186
192
|
|
|
187
|
-
return instance.dismiss();
|
|
193
|
+
return instance.dismiss(animated);
|
|
188
194
|
}
|
|
189
195
|
|
|
190
196
|
/**
|
|
@@ -286,8 +292,9 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
286
292
|
/**
|
|
287
293
|
* Present the Sheet by `index` (Promise-based)
|
|
288
294
|
* @param index - Detent index (default: 0)
|
|
295
|
+
* @param animated - Whether to animate the presentation (default: true)
|
|
289
296
|
*/
|
|
290
|
-
public async present(index: number = 0): Promise<void> {
|
|
297
|
+
public async present(index: number = 0, animated: boolean = true): Promise<void> {
|
|
291
298
|
const detentsLength = Math.min(this.props.detents?.length ?? 2, 3); // Max 3 detents
|
|
292
299
|
if (index < 0 || index >= detentsLength) {
|
|
293
300
|
throw new Error(
|
|
@@ -303,7 +310,7 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
303
310
|
});
|
|
304
311
|
}
|
|
305
312
|
|
|
306
|
-
return TrueSheetModule?.presentByRef(this.handle, index);
|
|
313
|
+
return TrueSheetModule?.presentByRef(this.handle, index, animated);
|
|
307
314
|
}
|
|
308
315
|
|
|
309
316
|
/**
|
|
@@ -316,9 +323,10 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
316
323
|
|
|
317
324
|
/**
|
|
318
325
|
* Dismisses the Sheet
|
|
326
|
+
* @param animated - Whether to animate the dismissal (default: true)
|
|
319
327
|
*/
|
|
320
|
-
public async dismiss(): Promise<void> {
|
|
321
|
-
return TrueSheetModule?.dismissByRef(this.handle);
|
|
328
|
+
public async dismiss(animated: boolean = true): Promise<void> {
|
|
329
|
+
return TrueSheetModule?.dismissByRef(this.handle, animated);
|
|
322
330
|
}
|
|
323
331
|
|
|
324
332
|
componentDidMount(): void {
|
package/src/__mocks__/index.js
CHANGED
|
@@ -6,13 +6,13 @@ export class TrueSheet extends React.Component {
|
|
|
6
6
|
static instances = {};
|
|
7
7
|
|
|
8
8
|
// Static methods
|
|
9
|
-
static dismiss = jest.fn((name) => Promise.resolve());
|
|
10
|
-
static present = jest.fn((name, index = 0) => Promise.resolve());
|
|
9
|
+
static dismiss = jest.fn((name, animated = true) => Promise.resolve());
|
|
10
|
+
static present = jest.fn((name, index = 0, animated = true) => Promise.resolve());
|
|
11
11
|
static resize = jest.fn((name, index) => Promise.resolve());
|
|
12
12
|
|
|
13
13
|
// Instance methods
|
|
14
|
-
dismiss = jest.fn(() => Promise.resolve());
|
|
15
|
-
present = jest.fn((index = 0) => Promise.resolve());
|
|
14
|
+
dismiss = jest.fn((animated = true) => Promise.resolve());
|
|
15
|
+
present = jest.fn((index = 0, animated = true) => Promise.resolve());
|
|
16
16
|
resize = jest.fn((index) => Promise.resolve());
|
|
17
17
|
|
|
18
18
|
componentDidMount() {
|
|
@@ -30,9 +30,10 @@ export class TrueSheet extends React.Component {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
render() {
|
|
33
|
-
const { children, footer, style, ...rest } = this.props;
|
|
33
|
+
const { children, header, footer, style, ...rest } = this.props;
|
|
34
34
|
return (
|
|
35
35
|
<View style={style} {...rest}>
|
|
36
|
+
{header}
|
|
36
37
|
{children}
|
|
37
38
|
{footer}
|
|
38
39
|
</View>
|
|
@@ -13,18 +13,20 @@ interface Spec extends TurboModule {
|
|
|
13
13
|
* Present a sheet by reference
|
|
14
14
|
* @param viewTag - Native view tag of the sheet component
|
|
15
15
|
* @param index - Detent index to present at
|
|
16
|
+
* @param animated - Whether to animate the presentation
|
|
16
17
|
* @returns Promise that resolves when sheet is fully presented
|
|
17
18
|
* @throws PRESENT_FAILED if presentation fails
|
|
18
19
|
*/
|
|
19
|
-
presentByRef(viewTag: number, index: number): Promise<void>;
|
|
20
|
+
presentByRef(viewTag: number, index: number, animated: boolean): Promise<void>;
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* Dismiss a sheet by reference
|
|
23
24
|
* @param viewTag - Native view tag of the sheet component
|
|
25
|
+
* @param animated - Whether to animate the dismissal
|
|
24
26
|
* @returns Promise that resolves when sheet is fully dismissed
|
|
25
27
|
* @throws DISMISS_FAILED if dismissal fails
|
|
26
28
|
*/
|
|
27
|
-
dismissByRef(viewTag: number): Promise<void>;
|
|
29
|
+
dismissByRef(viewTag: number, animated: boolean): Promise<void>;
|
|
28
30
|
|
|
29
31
|
/**
|
|
30
32
|
* Resize a sheet to a different index by reference
|