@lodev09/react-native-true-sheet 3.9.0-beta.3 → 3.9.0-beta.4
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/build.gradle +2 -1
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerView.kt +5 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +21 -2
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +55 -23
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +53 -38
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +30 -2
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetKeyboardObserver.kt +16 -9
- package/android/src/main/java/com/lodev09/truesheet/utils/ViewUtils.kt +1 -0
- package/ios/TrueSheetView.mm +1 -1
- package/ios/TrueSheetViewController.mm +26 -14
- package/ios/core/RNScreensEventObserver.mm +5 -1
- package/lib/module/TrueSheet.js +17 -7
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/navigation/screen/useSheetScreenState.js +21 -21
- package/lib/module/navigation/screen/useSheetScreenState.js.map +1 -1
- package/lib/module/reanimated/ReanimatedTrueSheetProvider.js +3 -3
- package/lib/module/reanimated/ReanimatedTrueSheetProvider.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/navigation/screen/useSheetScreenState.d.ts.map +1 -1
- package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/TrueSheet.tsx +22 -7
- package/src/navigation/screen/useSheetScreenState.ts +27 -20
- package/src/reanimated/ReanimatedTrueSheetProvider.tsx +5 -6
package/android/build.gradle
CHANGED
|
@@ -96,10 +96,11 @@ repositories {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
99
|
+
def material_version = getExtOrDefault("materialVersion") ?: "1.12.0"
|
|
99
100
|
|
|
100
101
|
dependencies {
|
|
101
102
|
implementation "com.facebook.react:react-android"
|
|
102
103
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
103
|
-
implementation "com.google.android.material:material
|
|
104
|
+
implementation "com.google.android.material:material:$material_version"
|
|
104
105
|
}
|
|
105
106
|
|
|
@@ -10,6 +10,7 @@ import com.facebook.react.views.view.ReactViewGroup
|
|
|
10
10
|
interface TrueSheetContainerViewDelegate {
|
|
11
11
|
val eventDispatcher: EventDispatcher?
|
|
12
12
|
fun containerViewContentDidChangeSize(width: Int, height: Int)
|
|
13
|
+
fun containerViewContentDidScroll()
|
|
13
14
|
fun containerViewHeaderDidChangeSize(width: Int, height: Int)
|
|
14
15
|
fun containerViewFooterDidChangeSize(width: Int, height: Int)
|
|
15
16
|
}
|
|
@@ -119,6 +120,10 @@ class TrueSheetContainerView(reactContext: ThemedReactContext) :
|
|
|
119
120
|
delegate?.containerViewContentDidChangeSize(width, height)
|
|
120
121
|
}
|
|
121
122
|
|
|
123
|
+
override fun contentViewDidScroll() {
|
|
124
|
+
delegate?.containerViewContentDidScroll()
|
|
125
|
+
}
|
|
126
|
+
|
|
122
127
|
override fun headerViewDidChangeSize(width: Int, height: Int) {
|
|
123
128
|
headerHeight = height
|
|
124
129
|
delegate?.containerViewHeaderDidChangeSize(width, height)
|
|
@@ -10,12 +10,14 @@ import com.facebook.react.uimanager.ThemedReactContext
|
|
|
10
10
|
import com.facebook.react.views.view.ReactViewGroup
|
|
11
11
|
import com.lodev09.truesheet.core.TrueSheetKeyboardObserver
|
|
12
12
|
import com.lodev09.truesheet.core.TrueSheetKeyboardObserverDelegate
|
|
13
|
+
import com.lodev09.truesheet.utils.isDescendantOf
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* Delegate interface for content view size changes
|
|
16
17
|
*/
|
|
17
18
|
interface TrueSheetContentViewDelegate {
|
|
18
19
|
fun contentViewDidChangeSize(width: Int, height: Int)
|
|
20
|
+
fun contentViewDidScroll()
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
/**
|
|
@@ -30,6 +32,7 @@ class TrueSheetContentView(private val reactContext: ThemedReactContext) : React
|
|
|
30
32
|
private var lastHeight = 0
|
|
31
33
|
|
|
32
34
|
private var pinnedScrollView: ScrollView? = null
|
|
35
|
+
private var cachedScrollView: ScrollView? = null
|
|
33
36
|
private var originalScrollViewPaddingBottom: Int = 0
|
|
34
37
|
private var bottomInset: Int = 0
|
|
35
38
|
|
|
@@ -66,7 +69,8 @@ class TrueSheetContentView(private val reactContext: ThemedReactContext) : React
|
|
|
66
69
|
val scrollView = findScrollView(this)
|
|
67
70
|
|
|
68
71
|
if (scrollView != pinnedScrollView) {
|
|
69
|
-
//
|
|
72
|
+
// Clean up previous scroll view
|
|
73
|
+
pinnedScrollView?.setOnScrollChangeListener(null as View.OnScrollChangeListener?)
|
|
70
74
|
pinnedScrollView?.setPadding(
|
|
71
75
|
pinnedScrollView!!.paddingLeft,
|
|
72
76
|
pinnedScrollView!!.paddingTop,
|
|
@@ -76,6 +80,12 @@ class TrueSheetContentView(private val reactContext: ThemedReactContext) : React
|
|
|
76
80
|
|
|
77
81
|
pinnedScrollView = scrollView
|
|
78
82
|
originalScrollViewPaddingBottom = scrollView?.paddingBottom ?: 0
|
|
83
|
+
|
|
84
|
+
scrollView?.setOnScrollChangeListener { _, _, scrollY, _, oldScrollY ->
|
|
85
|
+
if (scrollY != oldScrollY) {
|
|
86
|
+
delegate?.contentViewDidScroll()
|
|
87
|
+
}
|
|
88
|
+
}
|
|
79
89
|
}
|
|
80
90
|
|
|
81
91
|
scrollView?.let {
|
|
@@ -90,6 +100,7 @@ class TrueSheetContentView(private val reactContext: ThemedReactContext) : React
|
|
|
90
100
|
}
|
|
91
101
|
|
|
92
102
|
fun clearScrollable() {
|
|
103
|
+
pinnedScrollView?.setOnScrollChangeListener(null as View.OnScrollChangeListener?)
|
|
93
104
|
pinnedScrollView?.setPadding(
|
|
94
105
|
pinnedScrollView!!.paddingLeft,
|
|
95
106
|
pinnedScrollView!!.paddingTop,
|
|
@@ -97,11 +108,19 @@ class TrueSheetContentView(private val reactContext: ThemedReactContext) : React
|
|
|
97
108
|
originalScrollViewPaddingBottom
|
|
98
109
|
)
|
|
99
110
|
pinnedScrollView = null
|
|
111
|
+
cachedScrollView = null
|
|
100
112
|
originalScrollViewPaddingBottom = 0
|
|
101
113
|
bottomInset = 0
|
|
102
114
|
}
|
|
103
115
|
|
|
104
|
-
fun findScrollView(): ScrollView?
|
|
116
|
+
fun findScrollView(): ScrollView? {
|
|
117
|
+
// Return cached if still valid (attached and descendant of this view)
|
|
118
|
+
cachedScrollView?.let {
|
|
119
|
+
if (it.isAttachedToWindow && it.isDescendantOf(this)) return it
|
|
120
|
+
cachedScrollView = null
|
|
121
|
+
}
|
|
122
|
+
return findScrollView(this as View).also { cachedScrollView = it }
|
|
123
|
+
}
|
|
105
124
|
|
|
106
125
|
private fun findScrollView(view: View): ScrollView? {
|
|
107
126
|
if (view is ScrollView) {
|
|
@@ -343,32 +343,49 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
|
|
|
343
343
|
|
|
344
344
|
@UiThread
|
|
345
345
|
fun present(detentIndex: Int, animated: Boolean = true, promiseCallback: () -> Unit) {
|
|
346
|
-
if (
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
if (KeyboardUtils.isKeyboardVisible(reactContext) && shouldDismissKeyboard) {
|
|
352
|
-
viewController.saveFocusedView()
|
|
353
|
-
KeyboardUtils.dismiss(this) {
|
|
354
|
-
post { present(detentIndex, animated, promiseCallback) }
|
|
355
|
-
}
|
|
356
|
-
return
|
|
357
|
-
}
|
|
346
|
+
if (viewController.isPresented) {
|
|
347
|
+
RNLog.w(reactContext, "TrueSheet: sheet is already presented. Use resize() to change detent.")
|
|
348
|
+
promiseCallback()
|
|
349
|
+
return
|
|
350
|
+
}
|
|
358
351
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
352
|
+
if (viewController.coordinatorLayout == null || viewController.sheetView == null) {
|
|
353
|
+
RNLog.w(reactContext, "TrueSheet: sheet is not ready. Ensure it is mounted before presenting.")
|
|
354
|
+
promiseCallback()
|
|
355
|
+
return
|
|
356
|
+
}
|
|
362
357
|
|
|
363
|
-
|
|
364
|
-
|
|
358
|
+
// Dismiss keyboard if focused view is within a sheet or if target detent will be dimmed
|
|
359
|
+
val parentSheet = TrueSheetStackManager.getTopmostSheet()
|
|
360
|
+
val isFocusedViewWithinSheet = parentSheet?.viewController?.isFocusedViewWithinSheet() == true
|
|
361
|
+
val shouldDismissKeyboard = isFocusedViewWithinSheet || viewController.isDimmedAtDetentIndex(detentIndex)
|
|
362
|
+
if (KeyboardUtils.isKeyboardVisible(reactContext) && shouldDismissKeyboard) {
|
|
363
|
+
viewController.saveFocusedView()
|
|
364
|
+
KeyboardUtils.dismiss(this) {
|
|
365
|
+
post { present(detentIndex, animated, promiseCallback) }
|
|
366
|
+
}
|
|
367
|
+
return
|
|
365
368
|
}
|
|
369
|
+
|
|
370
|
+
// Attach coordinator to the root container
|
|
371
|
+
rootContainerView = findRootContainerView()
|
|
372
|
+
viewController.coordinatorLayout?.let { rootContainerView?.addView(it) }
|
|
373
|
+
|
|
374
|
+
// Register with observer to track sheet stack hierarchy
|
|
375
|
+
viewController.parentSheetView = TrueSheetStackManager.registerSheet(this)
|
|
376
|
+
|
|
366
377
|
viewController.presentPromise = promiseCallback
|
|
367
378
|
viewController.present(detentIndex, animated)
|
|
368
379
|
}
|
|
369
380
|
|
|
370
381
|
@UiThread
|
|
371
382
|
fun dismiss(animated: Boolean = true, promiseCallback: () -> Unit) {
|
|
383
|
+
if (viewController.isBeingDismissed || !viewController.isPresented) {
|
|
384
|
+
RNLog.w(reactContext, "TrueSheet: sheet is already dismissed. No need to dismiss it again.")
|
|
385
|
+
promiseCallback()
|
|
386
|
+
return
|
|
387
|
+
}
|
|
388
|
+
|
|
372
389
|
// Dismiss all sheets above first
|
|
373
390
|
dismissStack(animated) {}
|
|
374
391
|
|
|
@@ -379,20 +396,31 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
|
|
|
379
396
|
|
|
380
397
|
@UiThread
|
|
381
398
|
fun dismissStack(animated: Boolean = true, promiseCallback: () -> Unit) {
|
|
399
|
+
if (viewController.isBeingDismissed || !viewController.isPresented) {
|
|
400
|
+
RNLog.w(reactContext, "TrueSheet: sheet is already dismissed. No need to dismiss it again.")
|
|
401
|
+
promiseCallback()
|
|
402
|
+
return
|
|
403
|
+
}
|
|
404
|
+
|
|
382
405
|
val sheetsAbove = TrueSheetStackManager.getSheetsAbove(this)
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
sheetsAbove.firstOrNull()?.viewController?.createSheetSnapshot()
|
|
406
|
+
// Create snapshot only for topmost sheet (first in reversed list)
|
|
407
|
+
sheetsAbove.firstOrNull()?.viewController?.createSheetSnapshot()
|
|
386
408
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
}
|
|
409
|
+
for (sheet in sheetsAbove) {
|
|
410
|
+
sheet.viewController.dismiss(animated)
|
|
390
411
|
}
|
|
412
|
+
|
|
391
413
|
promiseCallback()
|
|
392
414
|
}
|
|
393
415
|
|
|
394
416
|
@UiThread
|
|
395
417
|
fun resize(detentIndex: Int, promiseCallback: () -> Unit) {
|
|
418
|
+
if (!viewController.isPresented) {
|
|
419
|
+
RNLog.w(reactContext, "TrueSheet: Cannot resize. Sheet is not presented.")
|
|
420
|
+
promiseCallback()
|
|
421
|
+
return
|
|
422
|
+
}
|
|
423
|
+
|
|
396
424
|
viewController.resizePromise = promiseCallback
|
|
397
425
|
viewController.resize(detentIndex)
|
|
398
426
|
}
|
|
@@ -556,6 +584,10 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
|
|
|
556
584
|
updateSheetIfNeeded()
|
|
557
585
|
}
|
|
558
586
|
|
|
587
|
+
override fun containerViewContentDidScroll() {
|
|
588
|
+
viewController.commitKeyboardDetent()
|
|
589
|
+
}
|
|
590
|
+
|
|
559
591
|
override fun containerViewHeaderDidChangeSize(width: Int, height: Int) {
|
|
560
592
|
updateSheetIfNeeded()
|
|
561
593
|
}
|
|
@@ -173,6 +173,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
173
173
|
|
|
174
174
|
// Keyboard State
|
|
175
175
|
private var detentIndexBeforeKeyboard: Int = -1
|
|
176
|
+
private var isKeyboardDismissProgrammatic = false
|
|
176
177
|
private var focusedViewBeforeBlur: View? = null
|
|
177
178
|
|
|
178
179
|
// Promises
|
|
@@ -212,10 +213,6 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
212
213
|
var insetAdjustment: TrueSheetInsetAdjustment = TrueSheetInsetAdjustment.AUTOMATIC
|
|
213
214
|
|
|
214
215
|
var scrollable: Boolean = false
|
|
215
|
-
set(value) {
|
|
216
|
-
field = value
|
|
217
|
-
coordinatorLayout?.scrollable = value
|
|
218
|
-
}
|
|
219
216
|
|
|
220
217
|
var scrollableOptions: ReadableMap? = null
|
|
221
218
|
|
|
@@ -344,7 +341,6 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
344
341
|
// Create coordinator layout
|
|
345
342
|
coordinatorLayout = TrueSheetCoordinatorLayout(reactContext).apply {
|
|
346
343
|
delegate = this@TrueSheetViewController
|
|
347
|
-
scrollable = this@TrueSheetViewController.scrollable
|
|
348
344
|
}
|
|
349
345
|
|
|
350
346
|
sheetView = TrueSheetBottomSheetView(reactContext).apply {
|
|
@@ -383,6 +379,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
383
379
|
isPresentAnimating = false
|
|
384
380
|
lastEmittedPositionPx = -1
|
|
385
381
|
detentIndexBeforeKeyboard = -1
|
|
382
|
+
isKeyboardDismissProgrammatic = false
|
|
386
383
|
focusedViewBeforeBlur = null
|
|
387
384
|
shouldAnimatePresent = true
|
|
388
385
|
}
|
|
@@ -457,7 +454,9 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
457
454
|
sheetView?.let { emitChangePositionDelegate(it.top, realtime = false) }
|
|
458
455
|
}
|
|
459
456
|
|
|
457
|
+
override val isScrollable: Boolean get() = scrollable
|
|
460
458
|
override fun findScrollView(): ScrollView? = containerView?.contentView?.findScrollView()
|
|
459
|
+
override fun findSheetView(): TrueSheetBottomSheetView? = sheetView
|
|
461
460
|
|
|
462
461
|
// =============================================================================
|
|
463
462
|
// MARK: - TrueSheetDimViewDelegate
|
|
@@ -604,6 +603,10 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
604
603
|
}
|
|
605
604
|
}
|
|
606
605
|
}
|
|
606
|
+
|
|
607
|
+
if (!isKeyboardTransitioning) {
|
|
608
|
+
updateDimAmount(animated = true)
|
|
609
|
+
}
|
|
607
610
|
}
|
|
608
611
|
|
|
609
612
|
// =============================================================================
|
|
@@ -658,22 +661,9 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
658
661
|
// =============================================================================
|
|
659
662
|
|
|
660
663
|
fun present(detentIndex: Int, animated: Boolean = true) {
|
|
661
|
-
val coordinator = this.coordinatorLayout ?:
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
val sheet = this.sheetView ?: run {
|
|
667
|
-
RNLog.w(reactContext, "TrueSheet: No sheet view available.")
|
|
668
|
-
return
|
|
669
|
-
}
|
|
670
|
-
|
|
671
|
-
if (isPresented) {
|
|
672
|
-
RNLog.w(reactContext, "TrueSheet: sheet is already presented. Use resize() to change detent.")
|
|
673
|
-
presentPromise?.invoke()
|
|
674
|
-
presentPromise = null
|
|
675
|
-
return
|
|
676
|
-
}
|
|
664
|
+
val coordinator = this.coordinatorLayout ?: return
|
|
665
|
+
val sheet = this.sheetView ?: return
|
|
666
|
+
if (isPresented) return
|
|
677
667
|
|
|
678
668
|
shouldAnimatePresent = animated
|
|
679
669
|
currentDetentIndex = detentIndex
|
|
@@ -710,12 +700,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
710
700
|
}
|
|
711
701
|
|
|
712
702
|
fun resize(detentIndex: Int) {
|
|
713
|
-
if (!isPresented)
|
|
714
|
-
RNLog.w(reactContext, "TrueSheet: Cannot resize. Sheet is not presented.")
|
|
715
|
-
resizePromise?.invoke()
|
|
716
|
-
resizePromise = null
|
|
717
|
-
return
|
|
718
|
-
}
|
|
703
|
+
if (!isPresented) return
|
|
719
704
|
|
|
720
705
|
// Commit the new index so keyboardWillHide restores to it instead of the stale one
|
|
721
706
|
if (detentIndexBeforeKeyboard >= 0) {
|
|
@@ -765,6 +750,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
765
750
|
}
|
|
766
751
|
|
|
767
752
|
private fun dismissKeyboard() {
|
|
753
|
+
isKeyboardDismissProgrammatic = true
|
|
768
754
|
KeyboardUtils.dismiss(reactContext)
|
|
769
755
|
}
|
|
770
756
|
|
|
@@ -816,7 +802,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
816
802
|
// MARK: - Sheet Configuration
|
|
817
803
|
// =============================================================================
|
|
818
804
|
|
|
819
|
-
fun setupSheetDetents() {
|
|
805
|
+
fun setupSheetDetents(applyState: Boolean = true) {
|
|
820
806
|
val behavior = this.behavior ?: run {
|
|
821
807
|
RNLog.e(reactContext, "TrueSheet: behavior is null in setupSheetDetents")
|
|
822
808
|
return
|
|
@@ -861,7 +847,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
861
847
|
|
|
862
848
|
updateStateDimensions(expandedOffset)
|
|
863
849
|
|
|
864
|
-
if (isPresented) {
|
|
850
|
+
if (isPresented && applyState) {
|
|
865
851
|
setStateForDetentIndex(currentDetentIndex)
|
|
866
852
|
}
|
|
867
853
|
|
|
@@ -939,8 +925,13 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
939
925
|
if (!dimmed) return
|
|
940
926
|
if (contentHeight == 0) return
|
|
941
927
|
|
|
942
|
-
|
|
943
|
-
val top = (
|
|
928
|
+
// While keyboard is active or transitioning, use the target detent position for dim
|
|
929
|
+
val top = if (keyboardInset > 0 || isKeyboardTransitioning) {
|
|
930
|
+
detentCalculator.getSheetTopForDetentIndex(currentDetentIndex)
|
|
931
|
+
} else {
|
|
932
|
+
val keyboardOffset = if (isBeingDismissed) 0 else currentKeyboardInset
|
|
933
|
+
(sheetTop ?: sheetView?.top ?: return) + keyboardOffset
|
|
934
|
+
}
|
|
944
935
|
|
|
945
936
|
if (animated) {
|
|
946
937
|
val targetAlpha = dimView?.calculateAlpha(
|
|
@@ -1019,27 +1010,47 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
1019
1010
|
if (!shouldHandleKeyboard()) return
|
|
1020
1011
|
detentIndexBeforeKeyboard = currentDetentIndex
|
|
1021
1012
|
setupSheetDetents()
|
|
1022
|
-
|
|
1013
|
+
currentDetentIndex = detents.size - 1
|
|
1014
|
+
setStateForDetentIndex(currentDetentIndex)
|
|
1015
|
+
updateDimAmount(animated = true)
|
|
1023
1016
|
}
|
|
1024
1017
|
|
|
1025
1018
|
override fun keyboardWillHide() {
|
|
1026
1019
|
if (!shouldHandleKeyboard(checkFocus = false)) return
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1020
|
+
val restoring = !isBeingDismissed && detentIndexBeforeKeyboard >= 0
|
|
1021
|
+
|
|
1022
|
+
// Skip reconfigure during interactive keyboard dismiss (e.g. keyboardDismissMode="on-drag")
|
|
1023
|
+
// to prevent the sheet from jumping. keyboardDidHide will reconfigure after.
|
|
1024
|
+
if (restoring || isKeyboardDismissProgrammatic) {
|
|
1025
|
+
setupSheetDetents()
|
|
1026
|
+
if (restoring) {
|
|
1027
|
+
currentDetentIndex = detentIndexBeforeKeyboard
|
|
1028
|
+
setStateForDetentIndex(currentDetentIndex)
|
|
1029
|
+
}
|
|
1030
1030
|
}
|
|
1031
|
+
|
|
1032
|
+
updateDimAmount(
|
|
1033
|
+
sheetTop = detentCalculator.getSheetTopForDetentIndex(currentDetentIndex),
|
|
1034
|
+
animated = true
|
|
1035
|
+
)
|
|
1031
1036
|
}
|
|
1032
1037
|
|
|
1033
1038
|
override fun keyboardDidHide() {
|
|
1034
1039
|
if (!shouldHandleKeyboard(checkFocus = false)) return
|
|
1035
1040
|
detentIndexBeforeKeyboard = -1
|
|
1041
|
+
isKeyboardDismissProgrammatic = false
|
|
1042
|
+
setupSheetDetents(applyState = false)
|
|
1036
1043
|
positionFooter()
|
|
1044
|
+
updateDimAmount(
|
|
1045
|
+
sheetTop = detentCalculator.getSheetTopForDetentIndex(currentDetentIndex),
|
|
1046
|
+
animated = true
|
|
1047
|
+
)
|
|
1037
1048
|
}
|
|
1038
1049
|
|
|
1039
1050
|
override fun keyboardDidChangeHeight(height: Int) {
|
|
1040
|
-
// Skip focus check
|
|
1041
|
-
val
|
|
1042
|
-
if (!shouldHandleKeyboard(checkFocus = !
|
|
1051
|
+
// Skip focus check during active keyboard transitions (focus may be lost during hide)
|
|
1052
|
+
val skipFocusCheck = detentIndexBeforeKeyboard >= 0 || isKeyboardTransitioning
|
|
1053
|
+
if (!shouldHandleKeyboard(checkFocus = !skipFocusCheck)) return
|
|
1043
1054
|
positionFooter()
|
|
1044
1055
|
}
|
|
1045
1056
|
|
|
@@ -1069,6 +1080,10 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
1069
1080
|
private fun getPositionDpForView(sheetView: View): Float =
|
|
1070
1081
|
detentCalculator.getPositionDp(detentCalculator.getVisibleSheetHeight(sheetView.top))
|
|
1071
1082
|
|
|
1083
|
+
fun commitKeyboardDetent() {
|
|
1084
|
+
detentIndexBeforeKeyboard = -1
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1072
1087
|
private fun handleDragBegin(sheetView: View) {
|
|
1073
1088
|
detentIndexBeforeKeyboard = -1
|
|
1074
1089
|
|
|
@@ -9,11 +9,14 @@ import android.widget.ScrollView
|
|
|
9
9
|
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
|
10
10
|
import com.facebook.react.uimanager.PointerEvents
|
|
11
11
|
import com.facebook.react.uimanager.ReactPointerEventsView
|
|
12
|
+
import com.lodev09.truesheet.utils.isDescendantOf
|
|
12
13
|
|
|
13
14
|
interface TrueSheetCoordinatorLayoutDelegate {
|
|
15
|
+
val isScrollable: Boolean
|
|
14
16
|
fun coordinatorLayoutDidLayout(changed: Boolean)
|
|
15
17
|
fun coordinatorLayoutDidChangeConfiguration()
|
|
16
18
|
fun findScrollView(): ScrollView?
|
|
19
|
+
fun findSheetView(): TrueSheetBottomSheetView?
|
|
17
20
|
}
|
|
18
21
|
|
|
19
22
|
/**
|
|
@@ -27,7 +30,6 @@ class TrueSheetCoordinatorLayout(context: Context) :
|
|
|
27
30
|
ReactPointerEventsView {
|
|
28
31
|
|
|
29
32
|
var delegate: TrueSheetCoordinatorLayoutDelegate? = null
|
|
30
|
-
var scrollable: Boolean = false
|
|
31
33
|
|
|
32
34
|
private val touchSlop: Int = ViewConfiguration.get(context).scaledTouchSlop
|
|
33
35
|
private var dragging = false
|
|
@@ -63,6 +65,29 @@ class TrueSheetCoordinatorLayout(context: Context) :
|
|
|
63
65
|
override val pointerEvents: PointerEvents
|
|
64
66
|
get() = PointerEvents.BOX_NONE
|
|
65
67
|
|
|
68
|
+
/**
|
|
69
|
+
* Clears stale `nestedScrollingChildRef` from BottomSheetBehavior.
|
|
70
|
+
*
|
|
71
|
+
* `BottomSheetBehavior.onLayoutChild` calls `findScrollingChild()` which traverses the
|
|
72
|
+
* entire sheet subtree. When a child sheet with a ScrollView is dismissed, the ScrollView
|
|
73
|
+
* returns to this sheet's view hierarchy. `onLayoutChild` may then capture a ref to that
|
|
74
|
+
* ScrollView even though it doesn't belong to this sheet, blocking drag interactions.
|
|
75
|
+
*/
|
|
76
|
+
private fun clearStaleNestedScrollingChildRef() {
|
|
77
|
+
val sheet = delegate?.findSheetView() ?: return
|
|
78
|
+
val behavior = sheet.behavior ?: return
|
|
79
|
+
try {
|
|
80
|
+
val field = behavior.javaClass.getDeclaredField("nestedScrollingChildRef")
|
|
81
|
+
field.isAccessible = true
|
|
82
|
+
@Suppress("UNCHECKED_CAST")
|
|
83
|
+
val ref = field.get(behavior) as? java.lang.ref.WeakReference<android.view.View> ?: return
|
|
84
|
+
val view = ref.get() ?: return
|
|
85
|
+
if (!view.isDescendantOf(sheet)) {
|
|
86
|
+
ref.clear()
|
|
87
|
+
}
|
|
88
|
+
} catch (_: Exception) {}
|
|
89
|
+
}
|
|
90
|
+
|
|
66
91
|
/**
|
|
67
92
|
* Intercepts touch events for ScrollViews that can't scroll (content < viewport),
|
|
68
93
|
* allowing the sheet to be dragged in these cases.
|
|
@@ -71,7 +96,10 @@ class TrueSheetCoordinatorLayout(context: Context) :
|
|
|
71
96
|
* See: https://github.com/facebook/react-native/pull/44099
|
|
72
97
|
*/
|
|
73
98
|
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
|
|
74
|
-
if (
|
|
99
|
+
if (delegate?.isScrollable != true) {
|
|
100
|
+
if (ev.actionMasked == MotionEvent.ACTION_DOWN) {
|
|
101
|
+
clearStaleNestedScrollingChildRef()
|
|
102
|
+
}
|
|
75
103
|
return super.onInterceptTouchEvent(ev)
|
|
76
104
|
}
|
|
77
105
|
|
|
@@ -64,16 +64,23 @@ class TrueSheetKeyboardObserver(private val targetView: View, private val reactC
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
fun stop() {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
try {
|
|
68
|
+
globalLayoutListener?.let { listener ->
|
|
69
|
+
activityRootView?.viewTreeObserver?.let { observer ->
|
|
70
|
+
if (observer.isAlive) observer.removeOnGlobalLayoutListener(listener)
|
|
71
|
+
}
|
|
72
|
+
globalLayoutListener = null
|
|
73
|
+
}
|
|
74
|
+
focusChangeListener?.let { listener ->
|
|
75
|
+
activityRootView?.viewTreeObserver?.let { observer ->
|
|
76
|
+
if (observer.isAlive) observer.removeOnGlobalFocusChangeListener(listener)
|
|
77
|
+
}
|
|
78
|
+
focusChangeListener = null
|
|
79
|
+
}
|
|
80
|
+
} finally {
|
|
81
|
+
activityRootView = null
|
|
82
|
+
ViewCompat.setWindowInsetsAnimationCallback(targetView, null)
|
|
74
83
|
}
|
|
75
|
-
activityRootView = null
|
|
76
|
-
ViewCompat.setWindowInsetsAnimationCallback(targetView, null)
|
|
77
84
|
}
|
|
78
85
|
|
|
79
86
|
private fun updateHeight(from: Int, to: Int, fraction: Float) {
|
package/ios/TrueSheetView.mm
CHANGED
|
@@ -281,7 +281,7 @@ using namespace facebook::react;
|
|
|
281
281
|
if (!_state)
|
|
282
282
|
return;
|
|
283
283
|
|
|
284
|
-
if (
|
|
284
|
+
if (fabs(size.width - _lastStateSize.width) < 0.5 && fabs(size.height - _lastStateSize.height) < 0.5)
|
|
285
285
|
return;
|
|
286
286
|
|
|
287
287
|
_lastStateSize = size;
|
|
@@ -82,6 +82,8 @@ using namespace facebook::react;
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
- (void)dealloc {
|
|
85
|
+
[_transitioningTimer invalidate];
|
|
86
|
+
_transitioningTimer = nil;
|
|
85
87
|
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
|
86
88
|
}
|
|
87
89
|
|
|
@@ -413,22 +415,32 @@ using namespace facebook::react;
|
|
|
413
415
|
_transitionFakeView.frame = self.isBeingDismissed ? presentedFrame : dismissedFrame;
|
|
414
416
|
[self storeResolvedPositionForIndex:self.currentDetentIndex];
|
|
415
417
|
|
|
416
|
-
|
|
417
|
-
[[context containerView] addSubview:self->_transitionFakeView];
|
|
418
|
-
self->_transitionFakeView.frame = self.isBeingDismissed ? dismissedFrame : presentedFrame;
|
|
419
|
-
|
|
420
|
-
self->_transitioningTimer = [CADisplayLink displayLinkWithTarget:self selector:@selector(handleTransitionTracker)];
|
|
421
|
-
[self->_transitioningTimer addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
|
|
422
|
-
};
|
|
418
|
+
__weak __typeof(self) weakSelf = self;
|
|
423
419
|
|
|
424
420
|
[self.transitionCoordinator
|
|
425
|
-
animateAlongsideTransition
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
421
|
+
animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
|
|
422
|
+
__strong __typeof(weakSelf) strongSelf = weakSelf;
|
|
423
|
+
if (!strongSelf)
|
|
424
|
+
return;
|
|
425
|
+
|
|
426
|
+
[[context containerView] addSubview:strongSelf->_transitionFakeView];
|
|
427
|
+
strongSelf->_transitionFakeView.frame = strongSelf.isBeingDismissed ? dismissedFrame : presentedFrame;
|
|
428
|
+
|
|
429
|
+
strongSelf->_transitioningTimer = [CADisplayLink displayLinkWithTarget:strongSelf
|
|
430
|
+
selector:@selector(handleTransitionTracker)];
|
|
431
|
+
[strongSelf->_transitioningTimer addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
|
|
432
|
+
}
|
|
433
|
+
completion:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
|
|
434
|
+
__strong __typeof(weakSelf) strongSelf = weakSelf;
|
|
435
|
+
if (!strongSelf)
|
|
436
|
+
return;
|
|
437
|
+
|
|
438
|
+
[strongSelf->_transitioningTimer setPaused:YES];
|
|
439
|
+
[strongSelf->_transitioningTimer invalidate];
|
|
440
|
+
strongSelf->_transitioningTimer = nil;
|
|
441
|
+
[strongSelf->_transitionFakeView removeFromSuperview];
|
|
442
|
+
strongSelf->_isTransitioning = NO;
|
|
443
|
+
}];
|
|
432
444
|
}
|
|
433
445
|
|
|
434
446
|
- (void)handleTransitionTracker {
|
|
@@ -126,8 +126,12 @@ using namespace facebook::react;
|
|
|
126
126
|
_parentScreenController = nil;
|
|
127
127
|
_window = view.window;
|
|
128
128
|
|
|
129
|
+
Class screenViewClass = NSClassFromString(@"RNSScreenView");
|
|
130
|
+
if (!screenViewClass)
|
|
131
|
+
return;
|
|
132
|
+
|
|
129
133
|
for (UIView *current = view.superview; current; current = current.superview) {
|
|
130
|
-
if ([
|
|
134
|
+
if ([current isKindOfClass:screenViewClass]) {
|
|
131
135
|
[_screenTags addObject:@(current.tag)];
|
|
132
136
|
|
|
133
137
|
UIViewController *screenVC = nil;
|
package/lib/module/TrueSheet.js
CHANGED
|
@@ -350,20 +350,26 @@ export class TrueSheet extends PureComponent {
|
|
|
350
350
|
// Clamp to maximum of 1
|
|
351
351
|
return Math.min(1, detent);
|
|
352
352
|
});
|
|
353
|
+
|
|
354
|
+
// Cache grabberOptions to avoid creating a new object every render
|
|
355
|
+
if (grabberOptions !== this.cachedGrabberOptions) {
|
|
356
|
+
this.cachedGrabberOptions = grabberOptions;
|
|
357
|
+
this.resolvedGrabberOptions = {
|
|
358
|
+
...grabberOptions,
|
|
359
|
+
color: processColor(grabberOptions?.color)
|
|
360
|
+
};
|
|
361
|
+
}
|
|
353
362
|
return /*#__PURE__*/_jsx(TrueSheetViewNativeComponent, {
|
|
354
363
|
...rest,
|
|
355
364
|
ref: this.nativeRef,
|
|
356
|
-
style:
|
|
365
|
+
style: styles.sheetView,
|
|
357
366
|
detents: resolvedDetents,
|
|
358
367
|
backgroundBlur: backgroundBlur,
|
|
359
368
|
blurOptions: blurOptions,
|
|
360
369
|
backgroundColor: backgroundColor,
|
|
361
370
|
cornerRadius: cornerRadius,
|
|
362
371
|
grabber: grabber,
|
|
363
|
-
grabberOptions:
|
|
364
|
-
...grabberOptions,
|
|
365
|
-
color: processColor(grabberOptions?.color)
|
|
366
|
-
},
|
|
372
|
+
grabberOptions: this.resolvedGrabberOptions,
|
|
367
373
|
dimmed: dimmed,
|
|
368
374
|
dimmedDetentIndex: dimmedDetentIndex,
|
|
369
375
|
initialDetentIndex: initialDetentIndex,
|
|
@@ -394,12 +400,12 @@ export class TrueSheet extends PureComponent {
|
|
|
394
400
|
onDidBlur: this.onDidBlur,
|
|
395
401
|
onBackPress: this.onBackPress,
|
|
396
402
|
children: this.state.shouldRenderNativeView && /*#__PURE__*/_jsxs(TrueSheetContainerViewNativeComponent, {
|
|
397
|
-
style: scrollable
|
|
403
|
+
style: scrollable ? styles.scrollableContainer : undefined,
|
|
398
404
|
children: [header && /*#__PURE__*/_jsx(TrueSheetHeaderViewNativeComponent, {
|
|
399
405
|
style: [styles.header, headerStyle],
|
|
400
406
|
children: /*#__PURE__*/isValidElement(header) ? header : /*#__PURE__*/createElement(header)
|
|
401
407
|
}), /*#__PURE__*/_jsx(TrueSheetContentViewNativeComponent, {
|
|
402
|
-
style: [style,
|
|
408
|
+
style: scrollable ? [style, styles.scrollableContent] : style,
|
|
403
409
|
children: children
|
|
404
410
|
}), footer && /*#__PURE__*/_jsx(TrueSheetFooterViewNativeComponent, {
|
|
405
411
|
style: [styles.footer, footerStyle],
|
|
@@ -411,9 +417,13 @@ export class TrueSheet extends PureComponent {
|
|
|
411
417
|
}
|
|
412
418
|
const styles = StyleSheet.create({
|
|
413
419
|
sheetView: {
|
|
420
|
+
...StyleSheet.absoluteFill,
|
|
414
421
|
zIndex: -9999,
|
|
415
422
|
pointerEvents: 'box-none'
|
|
416
423
|
},
|
|
424
|
+
scrollableContainer: {
|
|
425
|
+
...StyleSheet.absoluteFill
|
|
426
|
+
},
|
|
417
427
|
scrollableContent: {
|
|
418
428
|
flex: 1
|
|
419
429
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","StyleSheet","findNodeHandle","processColor","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","Error","TrueSheet","displayName","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","onBackPress","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","animated","dismiss","dismissStack","resize","dismissAll","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","resizeByRef","dismissByRef","dismissStackByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","draggable","grabber","grabberOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","backgroundBlur","blurOptions","cornerRadius","maxContentHeight","maxContentWidth","anchor","anchorOffset","scrollable","scrollableOptions","pageSizing","children","style","header","headerStyle","footer","footerStyle","insetAdjustment","rest","resolvedDetents","slice","map","ref","absoluteFill","styles","sheetView","color","scrollableContent","create","zIndex","pointerEvents","flex","position","left","right"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","StyleSheet","findNodeHandle","processColor","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","Error","TrueSheet","displayName","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","onBackPress","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","animated","dismiss","dismissStack","resize","dismissAll","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","resizeByRef","dismissByRef","dismissStackByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","draggable","grabber","grabberOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","backgroundBlur","blurOptions","cornerRadius","maxContentHeight","maxContentWidth","anchor","anchorOffset","scrollable","scrollableOptions","pageSizing","children","style","header","headerStyle","footer","footerStyle","insetAdjustment","rest","resolvedDetents","slice","map","cachedGrabberOptions","resolvedGrabberOptions","color","ref","styles","sheetView","scrollableContainer","scrollableContent","create","absoluteFill","zIndex","pointerEvents","flex","position","left","right"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useEffect, useRef } from 'react';
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
4
4
|
import { TrueSheetActions } from "../TrueSheetRouter.js";
|
|
5
5
|
export const useSheetScreenState = props => {
|
|
6
6
|
const {
|
|
@@ -28,41 +28,41 @@ export const useSheetScreenState = props => {
|
|
|
28
28
|
}
|
|
29
29
|
ref.current?.resize(detentIndex);
|
|
30
30
|
}, [detentIndex, resizeKey]);
|
|
31
|
-
const emitEvent = (type, data) => {
|
|
31
|
+
const emitEvent = useCallback((type, data) => {
|
|
32
32
|
emit({
|
|
33
33
|
type,
|
|
34
34
|
target: routeKey,
|
|
35
35
|
data
|
|
36
36
|
});
|
|
37
|
-
};
|
|
38
|
-
const onDidDismiss = () => {
|
|
37
|
+
}, [emit, routeKey]);
|
|
38
|
+
const onDidDismiss = useCallback(() => {
|
|
39
39
|
emitEvent('sheetDidDismiss', undefined);
|
|
40
40
|
isDismissedRef.current = true;
|
|
41
|
-
// Remove route from state (works for both programmatic and user-initiated dismiss)
|
|
42
41
|
navigation.dispatch({
|
|
43
42
|
...TrueSheetActions.remove(),
|
|
44
43
|
source: routeKey
|
|
45
44
|
});
|
|
46
|
-
};
|
|
45
|
+
}, [emitEvent, navigation, routeKey]);
|
|
46
|
+
const eventHandlers = useMemo(() => ({
|
|
47
|
+
onWillPresent: e => emitEvent('sheetWillPresent', e.nativeEvent),
|
|
48
|
+
onDidPresent: e => emitEvent('sheetDidPresent', e.nativeEvent),
|
|
49
|
+
onWillDismiss: _e => emitEvent('sheetWillDismiss', undefined),
|
|
50
|
+
onDidDismiss,
|
|
51
|
+
onDetentChange: e => emitEvent('sheetDetentChange', e.nativeEvent),
|
|
52
|
+
onDragBegin: e => emitEvent('sheetDragBegin', e.nativeEvent),
|
|
53
|
+
onDragChange: e => emitEvent('sheetDragChange', e.nativeEvent),
|
|
54
|
+
onDragEnd: e => emitEvent('sheetDragEnd', e.nativeEvent),
|
|
55
|
+
onPositionChange: e => emitEvent('sheetPositionChange', e.nativeEvent),
|
|
56
|
+
onWillFocus: _e => emitEvent('sheetWillFocus', undefined),
|
|
57
|
+
onDidFocus: _e => emitEvent('sheetDidFocus', undefined),
|
|
58
|
+
onWillBlur: _e => emitEvent('sheetWillBlur', undefined),
|
|
59
|
+
onDidBlur: _e => emitEvent('sheetDidBlur', undefined)
|
|
60
|
+
}), [emitEvent, onDidDismiss]);
|
|
47
61
|
return {
|
|
48
62
|
ref,
|
|
49
63
|
initialDetentIndex: initialDetentIndexRef.current,
|
|
50
64
|
emitEvent,
|
|
51
|
-
eventHandlers
|
|
52
|
-
onWillPresent: e => emitEvent('sheetWillPresent', e.nativeEvent),
|
|
53
|
-
onDidPresent: e => emitEvent('sheetDidPresent', e.nativeEvent),
|
|
54
|
-
onWillDismiss: _e => emitEvent('sheetWillDismiss', undefined),
|
|
55
|
-
onDidDismiss,
|
|
56
|
-
onDetentChange: e => emitEvent('sheetDetentChange', e.nativeEvent),
|
|
57
|
-
onDragBegin: e => emitEvent('sheetDragBegin', e.nativeEvent),
|
|
58
|
-
onDragChange: e => emitEvent('sheetDragChange', e.nativeEvent),
|
|
59
|
-
onDragEnd: e => emitEvent('sheetDragEnd', e.nativeEvent),
|
|
60
|
-
onPositionChange: e => emitEvent('sheetPositionChange', e.nativeEvent),
|
|
61
|
-
onWillFocus: _e => emitEvent('sheetWillFocus', undefined),
|
|
62
|
-
onDidFocus: _e => emitEvent('sheetDidFocus', undefined),
|
|
63
|
-
onWillBlur: _e => emitEvent('sheetWillBlur', undefined),
|
|
64
|
-
onDidBlur: _e => emitEvent('sheetDidBlur', undefined)
|
|
65
|
-
}
|
|
65
|
+
eventHandlers
|
|
66
66
|
};
|
|
67
67
|
};
|
|
68
68
|
//# sourceMappingURL=useSheetScreenState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","TrueSheetActions","useSheetScreenState","props","detentIndex","resizeKey","closing","navigation","routeKey","emit","ref","isDismissedRef","isFirstRenderRef","initialDetentIndexRef","current","dismiss","resize","emitEvent","type","data","target","onDidDismiss","undefined","dispatch","remove","source","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","TrueSheetActions","useSheetScreenState","props","detentIndex","resizeKey","closing","navigation","routeKey","emit","ref","isDismissedRef","isFirstRenderRef","initialDetentIndexRef","current","dismiss","resize","emitEvent","type","data","target","onDidDismiss","undefined","dispatch","remove","source","eventHandlers","onWillPresent","e","nativeEvent","onDidPresent","onWillDismiss","_e","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","initialDetentIndex"],"sourceRoot":"../../../../src","sources":["navigation/screen/useSheetScreenState.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { createContext, useContext } from 'react';
|
|
3
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
4
4
|
import { useWindowDimensions } from 'react-native';
|
|
5
5
|
import { useSharedValue } from 'react-native-reanimated';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -31,11 +31,11 @@ export const ReanimatedTrueSheetProvider = ({
|
|
|
31
31
|
const animatedPosition = useSharedValue(height);
|
|
32
32
|
const animatedIndex = useSharedValue(-1);
|
|
33
33
|
const animatedDetent = useSharedValue(0);
|
|
34
|
-
const value = {
|
|
34
|
+
const value = useMemo(() => ({
|
|
35
35
|
animatedPosition,
|
|
36
36
|
animatedIndex,
|
|
37
37
|
animatedDetent
|
|
38
|
-
};
|
|
38
|
+
}), [animatedPosition, animatedIndex, animatedDetent]);
|
|
39
39
|
return /*#__PURE__*/_jsx(ReanimatedTrueSheetContext.Provider, {
|
|
40
40
|
value: value,
|
|
41
41
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","useWindowDimensions","useSharedValue","jsx","_jsx","ReanimatedTrueSheetContext","ReanimatedTrueSheetProvider","children","height","animatedPosition","animatedIndex","animatedDetent","value","Provider","useReanimatedTrueSheet","context","Error"],"sourceRoot":"../../../src","sources":["reanimated/ReanimatedTrueSheetProvider.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAwB,OAAO;
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useMemo","useWindowDimensions","useSharedValue","jsx","_jsx","ReanimatedTrueSheetContext","ReanimatedTrueSheetProvider","children","height","animatedPosition","animatedIndex","animatedDetent","value","Provider","useReanimatedTrueSheet","context","Error"],"sourceRoot":"../../../src","sources":["reanimated/ReanimatedTrueSheetProvider.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAwB,OAAO;AAC1E,SAASC,mBAAmB,QAAQ,cAAc;AAClD,SAASC,cAAc,QAA0B,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAmB3E,MAAMC,0BAA0B,gBAAGP,aAAa,CAAyC,IAAI,CAAC;AAM9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMQ,2BAA2B,GAAGA,CAAC;EAAEC;AAA2C,CAAC,KAAK;EAC7F,MAAM;IAAEC;EAAO,CAAC,GAAGP,mBAAmB,CAAC,CAAC;EACxC,MAAMQ,gBAAgB,GAAGP,cAAc,CAACM,MAAM,CAAC;EAC/C,MAAME,aAAa,GAAGR,cAAc,CAAC,CAAC,CAAC,CAAC;EACxC,MAAMS,cAAc,GAAGT,cAAc,CAAC,CAAC,CAAC;EAExC,MAAMU,KAAK,GAAGZ,OAAO,CACnB,OAAO;IAAES,gBAAgB;IAAEC,aAAa;IAAEC;EAAe,CAAC,CAAC,EAC3D,CAACF,gBAAgB,EAAEC,aAAa,EAAEC,cAAc,CAClD,CAAC;EAED,oBACEP,IAAA,CAACC,0BAA0B,CAACQ,QAAQ;IAACD,KAAK,EAAEA,KAAM;IAAAL,QAAA,EAC/CA;EAAQ,CAC0B,CAAC;AAE1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,sBAAsB,GAAGA,CAAA,KAAuC;EAC3E,MAAMC,OAAO,GAAGhB,UAAU,CAACM,0BAA0B,CAAC;EAEtD,IAAI,CAACU,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CACb,4EAA4E,GAC1E,2EACJ,CAAC;EACH;EAEA,OAAOD,OAAO;AAChB,CAAC","ignoreList":[]}
|
|
@@ -6,6 +6,8 @@ interface TrueSheetState {
|
|
|
6
6
|
export declare class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
7
7
|
displayName: string;
|
|
8
8
|
private readonly nativeRef;
|
|
9
|
+
private cachedGrabberOptions;
|
|
10
|
+
private resolvedGrabberOptions;
|
|
9
11
|
/**
|
|
10
12
|
* Map of sheet names against their instances.
|
|
11
13
|
*/
|
|
@@ -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;AAwB3B,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;IAEzD;;OAEG;IACH,OAAO,CAAC,YAAY,CAAkB;gBAE1B,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,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASvF;;;;;;OAMG;WACiB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE;;;;;OAKG;WACiB,UAAU,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,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;IAUpB,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;IAsBhF;;;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;;;;OAIG;IACU,YAAY,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;
|
|
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;AAwB3B,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,OAAO,CAAC,oBAAoB,CAA+C;IAC3E,OAAO,CAAC,sBAAsB,CAAsC;IAEpE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAEtE;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAA6B;IAEzD;;OAEG;IACH,OAAO,CAAC,YAAY,CAAkB;gBAE1B,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,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASvF;;;;;;OAMG;WACiB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE;;;;;OAKG;WACiB,UAAU,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,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;IAUpB,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;IAsBhF;;;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;;;;OAIG;IACU,YAAY,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;CAsHpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSheetScreenState.d.ts","sourceRoot":"","sources":["../../../../../src/navigation/screen/useSheetScreenState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,KAAK,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAEjD,UAAU,wBAAwB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,uBAAuB,CAAC,aAAa,CAAC,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,mBAAmB,GAAI,OAAO,wBAAwB;;;
|
|
1
|
+
{"version":3,"file":"useSheetScreenState.d.ts","sourceRoot":"","sources":["../../../../../src/navigation/screen/useSheetScreenState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,KAAK,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAEjD,UAAU,wBAAwB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,uBAAuB,CAAC,aAAa,CAAC,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,mBAAmB,GAAI,OAAO,wBAAwB;;;sBAyBvD,MAAM,2BAA2B,QACjC,sBAAsB,GAAG,0BAA0B,GAAG,SAAS;;2BAmBlD,gBAAgB;0BACjB,eAAe;4BACb,gBAAgB;;4BAEhB,iBAAiB;yBACpB,cAAc;0BACb,eAAe;uBAClB,YAAY;8BACL,mBAAmB;0BACvB,cAAc;yBACf,aAAa;yBACb,aAAa;wBACd,YAAY;;CAWjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReanimatedTrueSheetProvider.d.ts","sourceRoot":"","sources":["../../../../src/reanimated/ReanimatedTrueSheetProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ReanimatedTrueSheetProvider.d.ts","sourceRoot":"","sources":["../../../../src/reanimated/ReanimatedTrueSheetProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3E,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC;;;OAGG;IACH,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC;;;OAGG;IACH,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC;AAID,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,2BAA2B,GAAI,cAAc,gCAAgC,4CAgBzF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,sBAAsB,QAAO,+BAWzC,CAAC"}
|
package/package.json
CHANGED
package/src/TrueSheet.tsx
CHANGED
|
@@ -58,6 +58,9 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
58
58
|
|
|
59
59
|
private readonly nativeRef: RefObject<NativeRef | null>;
|
|
60
60
|
|
|
61
|
+
private cachedGrabberOptions: TrueSheetProps['grabberOptions'] | undefined;
|
|
62
|
+
private resolvedGrabberOptions: Record<string, unknown> | undefined;
|
|
63
|
+
|
|
61
64
|
/**
|
|
62
65
|
* Map of sheet names against their instances.
|
|
63
66
|
*/
|
|
@@ -436,21 +439,27 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
436
439
|
return Math.min(1, detent);
|
|
437
440
|
});
|
|
438
441
|
|
|
442
|
+
// Cache grabberOptions to avoid creating a new object every render
|
|
443
|
+
if (grabberOptions !== this.cachedGrabberOptions) {
|
|
444
|
+
this.cachedGrabberOptions = grabberOptions;
|
|
445
|
+
this.resolvedGrabberOptions = {
|
|
446
|
+
...grabberOptions,
|
|
447
|
+
color: processColor(grabberOptions?.color),
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
|
|
439
451
|
return (
|
|
440
452
|
<TrueSheetViewNativeComponent
|
|
441
453
|
{...rest}
|
|
442
454
|
ref={this.nativeRef}
|
|
443
|
-
style={
|
|
455
|
+
style={styles.sheetView}
|
|
444
456
|
detents={resolvedDetents}
|
|
445
457
|
backgroundBlur={backgroundBlur}
|
|
446
458
|
blurOptions={blurOptions}
|
|
447
459
|
backgroundColor={backgroundColor}
|
|
448
460
|
cornerRadius={cornerRadius}
|
|
449
461
|
grabber={grabber}
|
|
450
|
-
grabberOptions={
|
|
451
|
-
...grabberOptions,
|
|
452
|
-
color: processColor(grabberOptions?.color),
|
|
453
|
-
}}
|
|
462
|
+
grabberOptions={this.resolvedGrabberOptions}
|
|
454
463
|
dimmed={dimmed}
|
|
455
464
|
dimmedDetentIndex={dimmedDetentIndex}
|
|
456
465
|
initialDetentIndex={initialDetentIndex}
|
|
@@ -482,14 +491,16 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
482
491
|
onBackPress={this.onBackPress}
|
|
483
492
|
>
|
|
484
493
|
{this.state.shouldRenderNativeView && (
|
|
485
|
-
<TrueSheetContainerViewNativeComponent
|
|
494
|
+
<TrueSheetContainerViewNativeComponent
|
|
495
|
+
style={scrollable ? styles.scrollableContainer : undefined}
|
|
496
|
+
>
|
|
486
497
|
{header && (
|
|
487
498
|
<TrueSheetHeaderViewNativeComponent style={[styles.header, headerStyle]}>
|
|
488
499
|
{isValidElement(header) ? header : createElement(header)}
|
|
489
500
|
</TrueSheetHeaderViewNativeComponent>
|
|
490
501
|
)}
|
|
491
502
|
<TrueSheetContentViewNativeComponent
|
|
492
|
-
style={[style,
|
|
503
|
+
style={scrollable ? [style, styles.scrollableContent] : style}
|
|
493
504
|
>
|
|
494
505
|
{children}
|
|
495
506
|
</TrueSheetContentViewNativeComponent>
|
|
@@ -507,9 +518,13 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
507
518
|
|
|
508
519
|
const styles = StyleSheet.create({
|
|
509
520
|
sheetView: {
|
|
521
|
+
...StyleSheet.absoluteFill,
|
|
510
522
|
zIndex: -9999,
|
|
511
523
|
pointerEvents: 'box-none',
|
|
512
524
|
},
|
|
525
|
+
scrollableContainer: {
|
|
526
|
+
...StyleSheet.absoluteFill,
|
|
527
|
+
},
|
|
513
528
|
scrollableContent: {
|
|
514
529
|
flex: 1,
|
|
515
530
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useEffect, useRef } from 'react';
|
|
1
|
+
import { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
2
2
|
|
|
3
3
|
import { TrueSheet } from '../../TrueSheet';
|
|
4
4
|
import type {
|
|
@@ -59,29 +59,28 @@ export const useSheetScreenState = (props: UseSheetScreenStateProps) => {
|
|
|
59
59
|
ref.current?.resize(detentIndex);
|
|
60
60
|
}, [detentIndex, resizeKey]);
|
|
61
61
|
|
|
62
|
-
const emitEvent = (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
62
|
+
const emitEvent = useCallback(
|
|
63
|
+
(
|
|
64
|
+
type: keyof TrueSheetNavigationEventMap,
|
|
65
|
+
data: DetentInfoEventPayload | PositionChangeEventPayload | undefined
|
|
66
|
+
) => {
|
|
67
|
+
emit({
|
|
68
|
+
type,
|
|
69
|
+
target: routeKey,
|
|
70
|
+
data,
|
|
71
|
+
} as Parameters<EmitFn>[0]);
|
|
72
|
+
},
|
|
73
|
+
[emit, routeKey]
|
|
74
|
+
);
|
|
72
75
|
|
|
73
|
-
const onDidDismiss = () => {
|
|
76
|
+
const onDidDismiss = useCallback(() => {
|
|
74
77
|
emitEvent('sheetDidDismiss', undefined);
|
|
75
78
|
isDismissedRef.current = true;
|
|
76
|
-
// Remove route from state (works for both programmatic and user-initiated dismiss)
|
|
77
79
|
navigation.dispatch({ ...TrueSheetActions.remove(), source: routeKey });
|
|
78
|
-
};
|
|
80
|
+
}, [emitEvent, navigation, routeKey]);
|
|
79
81
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
initialDetentIndex: initialDetentIndexRef.current,
|
|
83
|
-
emitEvent,
|
|
84
|
-
eventHandlers: {
|
|
82
|
+
const eventHandlers = useMemo(
|
|
83
|
+
() => ({
|
|
85
84
|
onWillPresent: (e: WillPresentEvent) => emitEvent('sheetWillPresent', e.nativeEvent),
|
|
86
85
|
onDidPresent: (e: DidPresentEvent) => emitEvent('sheetDidPresent', e.nativeEvent),
|
|
87
86
|
onWillDismiss: (_e: WillDismissEvent) => emitEvent('sheetWillDismiss', undefined),
|
|
@@ -95,6 +94,14 @@ export const useSheetScreenState = (props: UseSheetScreenStateProps) => {
|
|
|
95
94
|
onDidFocus: (_e: DidFocusEvent) => emitEvent('sheetDidFocus', undefined),
|
|
96
95
|
onWillBlur: (_e: WillBlurEvent) => emitEvent('sheetWillBlur', undefined),
|
|
97
96
|
onDidBlur: (_e: DidBlurEvent) => emitEvent('sheetDidBlur', undefined),
|
|
98
|
-
},
|
|
97
|
+
}),
|
|
98
|
+
[emitEvent, onDidDismiss]
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
return {
|
|
102
|
+
ref,
|
|
103
|
+
initialDetentIndex: initialDetentIndexRef.current,
|
|
104
|
+
emitEvent,
|
|
105
|
+
eventHandlers,
|
|
99
106
|
};
|
|
100
107
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createContext, useContext, type ReactNode } from 'react';
|
|
1
|
+
import { createContext, useContext, useMemo, type ReactNode } from 'react';
|
|
2
2
|
import { useWindowDimensions } from 'react-native';
|
|
3
3
|
import { useSharedValue, type SharedValue } from 'react-native-reanimated';
|
|
4
4
|
|
|
@@ -48,11 +48,10 @@ export const ReanimatedTrueSheetProvider = ({ children }: ReanimatedTrueSheetPro
|
|
|
48
48
|
const animatedIndex = useSharedValue(-1);
|
|
49
49
|
const animatedDetent = useSharedValue(0);
|
|
50
50
|
|
|
51
|
-
const value
|
|
52
|
-
animatedPosition,
|
|
53
|
-
animatedIndex,
|
|
54
|
-
|
|
55
|
-
};
|
|
51
|
+
const value = useMemo<ReanimatedTrueSheetContextValue>(
|
|
52
|
+
() => ({ animatedPosition, animatedIndex, animatedDetent }),
|
|
53
|
+
[animatedPosition, animatedIndex, animatedDetent]
|
|
54
|
+
);
|
|
56
55
|
|
|
57
56
|
return (
|
|
58
57
|
<ReanimatedTrueSheetContext.Provider value={value}>
|