@lodev09/react-native-true-sheet 3.0.0-beta.16 → 3.0.0-beta.18
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/README.md +10 -3
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +45 -24
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetGrabberView.kt +44 -0
- package/android/src/main/java/com/lodev09/truesheet/utils/ScreenUtils.kt +37 -33
- package/ios/TrueSheetViewController.h +1 -2
- package/ios/TrueSheetViewController.mm +33 -24
- package/ios/core/TrueSheetBlurView.mm +1 -1
- package/lib/module/TrueSheet.js +11 -1
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/fabric/TrueSheetViewNativeComponent.ts +1 -2
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/reanimated/ReanimatedTrueSheet.js +5 -4
- package/lib/module/reanimated/ReanimatedTrueSheet.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.map +1 -1
- package/lib/typescript/src/TrueSheet.types.d.ts +3 -2
- package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +2 -2
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +0 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts +2 -2
- package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/TrueSheet.tsx +12 -1
- package/src/TrueSheet.types.ts +3 -2
- package/src/__mocks__/index.js +0 -5
- package/src/fabric/TrueSheetViewNativeComponent.ts +1 -2
- package/src/index.ts +0 -1
- package/src/reanimated/ReanimatedTrueSheet.tsx +5 -5
- package/src/reanimated/ReanimatedTrueSheetProvider.tsx +5 -5
- package/lib/module/TrueSheetGrabber.js +0 -51
- package/lib/module/TrueSheetGrabber.js.map +0 -1
- package/lib/typescript/src/TrueSheetGrabber.d.ts +0 -39
- package/lib/typescript/src/TrueSheetGrabber.d.ts.map +0 -1
- package/src/TrueSheetGrabber.tsx +0 -82
package/README.md
CHANGED
|
@@ -24,13 +24,20 @@ The true native bottom sheet experience for your React Native Apps. 💩
|
|
|
24
24
|
|
|
25
25
|
### Prerequisites
|
|
26
26
|
|
|
27
|
-
- React Native >= 0.
|
|
28
|
-
- New Architecture enabled (
|
|
27
|
+
- React Native >= 0.76 (Expo SDK 52+)
|
|
28
|
+
- New Architecture enabled (default in RN 0.76+)
|
|
29
29
|
|
|
30
|
-
###
|
|
30
|
+
### Expo
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
npx expo install @lodev09/react-native-true-sheet
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Bare React Native
|
|
31
37
|
|
|
32
38
|
```sh
|
|
33
39
|
yarn add @lodev09/react-native-true-sheet
|
|
40
|
+
cd ios && pod install
|
|
34
41
|
```
|
|
35
42
|
|
|
36
43
|
## Documentation
|
|
@@ -2,11 +2,9 @@ package com.lodev09.truesheet
|
|
|
2
2
|
|
|
3
3
|
import android.annotation.SuppressLint
|
|
4
4
|
import android.graphics.Color
|
|
5
|
-
import android.graphics.drawable.GradientDrawable
|
|
6
5
|
import android.graphics.drawable.ShapeDrawable
|
|
7
6
|
import android.graphics.drawable.shapes.RoundRectShape
|
|
8
7
|
import android.util.TypedValue
|
|
9
|
-
import android.view.Gravity
|
|
10
8
|
import android.view.MotionEvent
|
|
11
9
|
import android.view.View
|
|
12
10
|
import android.view.WindowManager
|
|
@@ -26,6 +24,7 @@ import com.facebook.react.views.view.ReactViewGroup
|
|
|
26
24
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
|
27
25
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
|
28
26
|
import com.lodev09.truesheet.core.RNScreensFragmentObserver
|
|
27
|
+
import com.lodev09.truesheet.core.TrueSheetGrabberView
|
|
29
28
|
import com.lodev09.truesheet.utils.ScreenUtils
|
|
30
29
|
|
|
31
30
|
data class DetentInfo(val index: Int, val position: Float)
|
|
@@ -62,10 +61,6 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
62
61
|
private const val GRABBER_TAG = "TrueSheetGrabber"
|
|
63
62
|
private const val DEFAULT_MAX_WIDTH = 640 // dp
|
|
64
63
|
private const val DEFAULT_CORNER_RADIUS = 16 // dp
|
|
65
|
-
private const val GRABBER_WIDTH = 32f // dp
|
|
66
|
-
private const val GRABBER_HEIGHT = 4f // dp
|
|
67
|
-
private const val GRABBER_TOP_MARGIN = 16f // dp
|
|
68
|
-
private val GRABBER_COLOR = Color.argb((0.4 * 255).toInt(), 73, 69, 79) // #49454F @ 40%
|
|
69
64
|
|
|
70
65
|
/**
|
|
71
66
|
* Gets the effective sheet height by subtracting headerHeight * 2.
|
|
@@ -166,6 +161,13 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
166
161
|
val statusBarHeight: Int
|
|
167
162
|
get() = ScreenUtils.getStatusBarHeight(reactContext)
|
|
168
163
|
|
|
164
|
+
/**
|
|
165
|
+
* The bottom inset (navigation bar height) to add to sheet height.
|
|
166
|
+
* This matches iOS behavior where the system adds bottom safe area inset internally.
|
|
167
|
+
*/
|
|
168
|
+
private val bottomInset: Int
|
|
169
|
+
get() = ScreenUtils.getNavigationBarHeight(reactContext)
|
|
170
|
+
|
|
169
171
|
/**
|
|
170
172
|
* Edge-to-edge is enabled by default on API 36+, or when explicitly configured.
|
|
171
173
|
*/
|
|
@@ -524,21 +526,8 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
524
526
|
|
|
525
527
|
if (!grabber || !draggable) return
|
|
526
528
|
|
|
527
|
-
val grabberView =
|
|
529
|
+
val grabberView = TrueSheetGrabberView(reactContext).apply {
|
|
528
530
|
tag = GRABBER_TAG
|
|
529
|
-
layoutParams = FrameLayout.LayoutParams(
|
|
530
|
-
GRABBER_WIDTH.dpToPx().toInt(),
|
|
531
|
-
GRABBER_HEIGHT.dpToPx().toInt()
|
|
532
|
-
).apply {
|
|
533
|
-
gravity = Gravity.CENTER_HORIZONTAL or Gravity.TOP
|
|
534
|
-
topMargin = GRABBER_TOP_MARGIN.dpToPx().toInt()
|
|
535
|
-
}
|
|
536
|
-
background = GradientDrawable().apply {
|
|
537
|
-
shape = GradientDrawable.RECTANGLE
|
|
538
|
-
cornerRadius = (GRABBER_HEIGHT / 2).dpToPx()
|
|
539
|
-
setColor(GRABBER_COLOR)
|
|
540
|
-
}
|
|
541
|
-
elevation = 1f
|
|
542
531
|
}
|
|
543
532
|
|
|
544
533
|
bottomSheet.addView(grabberView)
|
|
@@ -650,7 +639,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
650
639
|
lastEmittedPositionPx = positionPx
|
|
651
640
|
val position = positionPx.pxToDp()
|
|
652
641
|
val interpolatedIndex = getInterpolatedIndexForPosition(positionPx)
|
|
653
|
-
val detent =
|
|
642
|
+
val detent = getInterpolatedDetentForPosition(positionPx)
|
|
654
643
|
delegate?.viewControllerDidChangePosition(interpolatedIndex, position, detent, realtime)
|
|
655
644
|
}
|
|
656
645
|
|
|
@@ -690,9 +679,38 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
690
679
|
return (count - 1).toFloat()
|
|
691
680
|
}
|
|
692
681
|
|
|
682
|
+
/**
|
|
683
|
+
* Calculates the interpolated detent value based on position.
|
|
684
|
+
* Returns the actual screen fraction, clamped to valid detent range.
|
|
685
|
+
*/
|
|
686
|
+
private fun getInterpolatedDetentForPosition(positionPx: Int): Float {
|
|
687
|
+
// Convert position to detent fraction
|
|
688
|
+
val currentDetent = (screenHeight - positionPx).toFloat() / screenHeight.toFloat()
|
|
689
|
+
|
|
690
|
+
val count = detents.size
|
|
691
|
+
if (count == 0) return 0f
|
|
692
|
+
|
|
693
|
+
// Clamp to valid range between first and last detent
|
|
694
|
+
val firstDetentValue = getDetentValueForIndex(0)
|
|
695
|
+
val lastDetentValue = getDetentValueForIndex(count - 1)
|
|
696
|
+
|
|
697
|
+
if (currentDetent < firstDetentValue) {
|
|
698
|
+
// Below first detent - interpolate from 0 to first detent
|
|
699
|
+
if (firstDetentValue <= 0) return 0f
|
|
700
|
+
return maxOf(0f, currentDetent)
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
if (currentDetent > lastDetentValue) {
|
|
704
|
+
return lastDetentValue
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
return currentDetent
|
|
708
|
+
}
|
|
709
|
+
|
|
693
710
|
/**
|
|
694
711
|
* Gets the detent value (fraction) for a given index.
|
|
695
|
-
*
|
|
712
|
+
* Returns the raw screen fraction without bottomInset for interpolation calculations.
|
|
713
|
+
* Note: bottomInset is only added in getDetentHeight() for actual sheet sizing.
|
|
696
714
|
*/
|
|
697
715
|
private fun getDetentValueForIndex(index: Int): Float {
|
|
698
716
|
if (index < 0 || index >= detents.size) return 0f
|
|
@@ -776,12 +794,15 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
776
794
|
|
|
777
795
|
private fun getDetentHeight(detent: Double): Int {
|
|
778
796
|
val height: Int = if (detent == -1.0) {
|
|
779
|
-
|
|
797
|
+
// For auto detent, add bottomInset to match iOS behavior where the system
|
|
798
|
+
// adds bottom safe area inset internally to the sheet height
|
|
799
|
+
contentHeight + headerHeight + bottomInset
|
|
780
800
|
} else {
|
|
781
801
|
if (detent <= 0.0 || detent > 1.0) {
|
|
782
802
|
throw IllegalArgumentException("TrueSheet: detent fraction ($detent) must be between 0 and 1")
|
|
783
803
|
}
|
|
784
|
-
|
|
804
|
+
// For fractional detents, add bottomInset to match iOS behavior
|
|
805
|
+
(detent * screenHeight).toInt() + bottomInset
|
|
785
806
|
}
|
|
786
807
|
|
|
787
808
|
val maxAllowedHeight = screenHeight - sheetTopInset
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
package com.lodev09.truesheet.core
|
|
2
|
+
|
|
3
|
+
import android.annotation.SuppressLint
|
|
4
|
+
import android.content.Context
|
|
5
|
+
import android.graphics.Color
|
|
6
|
+
import android.graphics.drawable.GradientDrawable
|
|
7
|
+
import android.view.Gravity
|
|
8
|
+
import android.view.View
|
|
9
|
+
import android.widget.FrameLayout
|
|
10
|
+
import com.facebook.react.uimanager.PixelUtil.dpToPx
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Native grabber (drag handle) view for the bottom sheet.
|
|
14
|
+
* Displays a small pill-shaped indicator at the top of the sheet.
|
|
15
|
+
*/
|
|
16
|
+
@SuppressLint("ViewConstructor")
|
|
17
|
+
class TrueSheetGrabberView(context: Context) : View(context) {
|
|
18
|
+
|
|
19
|
+
companion object {
|
|
20
|
+
private const val GRABBER_WIDTH = 32f // dp
|
|
21
|
+
private const val GRABBER_HEIGHT = 4f // dp
|
|
22
|
+
private const val GRABBER_TOP_MARGIN = 16f // dp
|
|
23
|
+
private val GRABBER_COLOR = Color.argb((0.4 * 255).toInt(), 73, 69, 79) // #49454F @ 40%
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
init {
|
|
27
|
+
layoutParams = FrameLayout.LayoutParams(
|
|
28
|
+
GRABBER_WIDTH.dpToPx().toInt(),
|
|
29
|
+
GRABBER_HEIGHT.dpToPx().toInt()
|
|
30
|
+
).apply {
|
|
31
|
+
gravity = Gravity.CENTER_HORIZONTAL or Gravity.TOP
|
|
32
|
+
topMargin = GRABBER_TOP_MARGIN.dpToPx().toInt()
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
background = GradientDrawable().apply {
|
|
36
|
+
shape = GradientDrawable.RECTANGLE
|
|
37
|
+
cornerRadius = (GRABBER_HEIGHT / 2).dpToPx()
|
|
38
|
+
setColor(GRABBER_COLOR)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// High elevation to ensure grabber appears above content views
|
|
42
|
+
elevation = 100f
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -19,6 +19,18 @@ object ScreenUtils {
|
|
|
19
19
|
context.resources.getIdentifier(name, "dimen", "android")
|
|
20
20
|
).takeIf { it > 0 } ?: 0
|
|
21
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Get the WindowInsets for API 30+, or null for older APIs
|
|
24
|
+
*/
|
|
25
|
+
private fun getWindowInsets(context: ReactContext): WindowInsets? {
|
|
26
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
27
|
+
return context.getSystemService(WindowManager::class.java)
|
|
28
|
+
?.currentWindowMetrics
|
|
29
|
+
?.windowInsets
|
|
30
|
+
}
|
|
31
|
+
return null
|
|
32
|
+
}
|
|
33
|
+
|
|
22
34
|
/**
|
|
23
35
|
* Get the status bar height
|
|
24
36
|
*
|
|
@@ -26,20 +38,29 @@ object ScreenUtils {
|
|
|
26
38
|
* @return Status bar height in pixels
|
|
27
39
|
*/
|
|
28
40
|
fun getStatusBarHeight(context: ReactContext): Int {
|
|
29
|
-
// Modern approach using WindowInsets (API 30+)
|
|
30
41
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (insets != null) {
|
|
35
|
-
return insets.top
|
|
36
|
-
}
|
|
42
|
+
getWindowInsets(context)
|
|
43
|
+
?.getInsetsIgnoringVisibility(WindowInsets.Type.statusBars())
|
|
44
|
+
?.let { return it.top }
|
|
37
45
|
}
|
|
38
|
-
|
|
39
|
-
// Fallback to legacy approach for older APIs
|
|
40
46
|
return getIdentifierHeight(context, "status_bar_height")
|
|
41
47
|
}
|
|
42
48
|
|
|
49
|
+
/**
|
|
50
|
+
* Get the navigation bar height (bottom inset)
|
|
51
|
+
*
|
|
52
|
+
* @param context React context
|
|
53
|
+
* @return Navigation bar height in pixels
|
|
54
|
+
*/
|
|
55
|
+
fun getNavigationBarHeight(context: ReactContext): Int {
|
|
56
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
57
|
+
getWindowInsets(context)
|
|
58
|
+
?.getInsetsIgnoringVisibility(WindowInsets.Type.navigationBars())
|
|
59
|
+
?.let { return it.bottom }
|
|
60
|
+
}
|
|
61
|
+
return getIdentifierHeight(context, "navigation_bar_height")
|
|
62
|
+
}
|
|
63
|
+
|
|
43
64
|
/**
|
|
44
65
|
* Calculate the screen height
|
|
45
66
|
*
|
|
@@ -55,36 +76,20 @@ object ScreenUtils {
|
|
|
55
76
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
56
77
|
context.display?.getRealMetrics(displayMetrics)
|
|
57
78
|
} else {
|
|
79
|
+
@Suppress("DEPRECATION")
|
|
58
80
|
windowManager.defaultDisplay.getMetrics(displayMetrics)
|
|
59
81
|
}
|
|
60
82
|
|
|
61
83
|
val screenHeight = displayMetrics.heightPixels
|
|
62
|
-
val statusBarHeight = getStatusBarHeight(context)
|
|
63
|
-
|
|
64
|
-
val hasNavigationBar = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
65
|
-
context.getSystemService(WindowManager::class.java)
|
|
66
|
-
?.currentWindowMetrics
|
|
67
|
-
?.windowInsets
|
|
68
|
-
?.isVisible(WindowInsets.Type.navigationBars()) ?: false
|
|
69
|
-
} else {
|
|
70
|
-
context.resources.getIdentifier("navigation_bar_height", "dimen", "android") > 0
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
val navigationBarHeight = if (hasNavigationBar) {
|
|
74
|
-
getIdentifierHeight(context, "navigation_bar_height")
|
|
75
|
-
} else {
|
|
76
|
-
0
|
|
77
|
-
}
|
|
78
84
|
|
|
79
85
|
return if (edgeToEdge) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
false -> screenHeight + navigationBarHeight
|
|
86
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
87
|
+
screenHeight
|
|
88
|
+
} else {
|
|
89
|
+
screenHeight + getNavigationBarHeight(context)
|
|
85
90
|
}
|
|
86
91
|
} else {
|
|
87
|
-
screenHeight -
|
|
92
|
+
screenHeight - getStatusBarHeight(context) - getNavigationBarHeight(context)
|
|
88
93
|
}
|
|
89
94
|
}
|
|
90
95
|
|
|
@@ -98,8 +103,7 @@ object ScreenUtils {
|
|
|
98
103
|
val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
|
|
99
104
|
|
|
100
105
|
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
101
|
-
|
|
102
|
-
windowMetrics.bounds.width()
|
|
106
|
+
windowManager.currentWindowMetrics.bounds.width()
|
|
103
107
|
} else {
|
|
104
108
|
val displayMetrics = DisplayMetrics()
|
|
105
109
|
@Suppress("DEPRECATION")
|
|
@@ -45,7 +45,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
45
45
|
>
|
|
46
46
|
|
|
47
47
|
@property (nonatomic, weak, nullable) id<TrueSheetViewControllerDelegate> delegate;
|
|
48
|
-
@property (nonatomic, strong) NSArray *detents;
|
|
48
|
+
@property (nonatomic, strong) NSArray<NSNumber *> *detents;
|
|
49
49
|
@property (nonatomic, strong, nullable) NSNumber *maxHeight;
|
|
50
50
|
@property (nonatomic, strong, nullable) NSNumber *contentHeight;
|
|
51
51
|
@property (nonatomic, strong, nullable) NSNumber *headerHeight;
|
|
@@ -70,7 +70,6 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
70
70
|
- (void)updateDraggable;
|
|
71
71
|
- (NSInteger)currentDetentIndex;
|
|
72
72
|
- (CGFloat)currentPosition;
|
|
73
|
-
- (CGFloat)bottomInset;
|
|
74
73
|
- (CGFloat)detentValueForIndex:(NSInteger)index;
|
|
75
74
|
|
|
76
75
|
@end
|
|
@@ -94,14 +94,6 @@
|
|
|
94
94
|
return presentedView ? presentedView.frame.origin.y : 0.0;
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
- (CGFloat)bottomInset {
|
|
98
|
-
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) {
|
|
99
|
-
return 0;
|
|
100
|
-
}
|
|
101
|
-
UIWindow *window = [WindowUtil keyWindow];
|
|
102
|
-
return window ? window.safeAreaInsets.bottom : 0;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
97
|
- (CGFloat)screenHeight {
|
|
106
98
|
return UIScreen.mainScreen.bounds.size.height;
|
|
107
99
|
}
|
|
@@ -332,10 +324,8 @@
|
|
|
332
324
|
break;
|
|
333
325
|
case UIGestureRecognizerStateEnded:
|
|
334
326
|
case UIGestureRecognizerStateCancelled: {
|
|
327
|
+
_isDragging = NO;
|
|
335
328
|
[self emitChangePositionDelegateWithPosition:self.currentPosition realtime:NO];
|
|
336
|
-
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.4 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
337
|
-
self->_isDragging = NO;
|
|
338
|
-
});
|
|
339
329
|
break;
|
|
340
330
|
}
|
|
341
331
|
default:
|
|
@@ -351,8 +341,7 @@
|
|
|
351
341
|
_lastPosition = position;
|
|
352
342
|
|
|
353
343
|
CGFloat index = [self interpolatedIndexForPosition:position];
|
|
354
|
-
|
|
355
|
-
CGFloat detent = [self detentValueForIndex:discreteIndex];
|
|
344
|
+
CGFloat detent = [self interpolatedDetentForPosition:position];
|
|
356
345
|
if ([self.delegate respondsToSelector:@selector(viewControllerDidChangePosition:position:detent:realtime:)]) {
|
|
357
346
|
[self.delegate viewControllerDidChangePosition:index position:position detent:detent realtime:realtime];
|
|
358
347
|
}
|
|
@@ -397,13 +386,38 @@
|
|
|
397
386
|
return count - 1;
|
|
398
387
|
}
|
|
399
388
|
|
|
389
|
+
- (CGFloat)interpolatedDetentForPosition:(CGFloat)position {
|
|
390
|
+
// Convert position to detent fraction: detent = (screenHeight - position) / screenHeight
|
|
391
|
+
CGFloat currentDetent = (self.screenHeight - position) / self.screenHeight;
|
|
392
|
+
|
|
393
|
+
NSInteger count = _detents.count;
|
|
394
|
+
if (count == 0)
|
|
395
|
+
return 0;
|
|
396
|
+
|
|
397
|
+
// Clamp to valid range between first and last detent
|
|
398
|
+
CGFloat firstDetentValue = [self detentValueForIndex:0];
|
|
399
|
+
CGFloat lastDetentValue = [self detentValueForIndex:count - 1];
|
|
400
|
+
|
|
401
|
+
if (currentDetent < firstDetentValue) {
|
|
402
|
+
// Below first detent - interpolate from 0 to first detent
|
|
403
|
+
if (firstDetentValue <= 0)
|
|
404
|
+
return 0;
|
|
405
|
+
return fmax(0, currentDetent);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
if (currentDetent > lastDetentValue) {
|
|
409
|
+
return lastDetentValue;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
return currentDetent;
|
|
413
|
+
}
|
|
414
|
+
|
|
400
415
|
- (CGFloat)detentValueForIndex:(NSInteger)index {
|
|
401
416
|
if (index >= 0 && index < (NSInteger)_detents.count) {
|
|
402
|
-
CGFloat value = [_detents[index]
|
|
417
|
+
CGFloat value = [_detents[index] doubleValue];
|
|
403
418
|
// For auto (-1), calculate actual fraction from content + header height
|
|
404
|
-
// Subtract bottomInset to match the actual sheet height (consistent with detent resolver)
|
|
405
419
|
if (value == -1) {
|
|
406
|
-
CGFloat autoHeight = [self.contentHeight floatValue] + [self.headerHeight floatValue]
|
|
420
|
+
CGFloat autoHeight = [self.contentHeight floatValue] + [self.headerHeight floatValue];
|
|
407
421
|
return autoHeight / self.screenHeight;
|
|
408
422
|
}
|
|
409
423
|
return value;
|
|
@@ -487,7 +501,6 @@
|
|
|
487
501
|
|
|
488
502
|
NSMutableArray<UISheetPresentationControllerDetent *> *detents = [NSMutableArray array];
|
|
489
503
|
|
|
490
|
-
// Subtract bottomInset to prevent iOS from adding extra bottom insets
|
|
491
504
|
CGFloat autoHeight = [self.contentHeight floatValue] + [self.headerHeight floatValue];
|
|
492
505
|
|
|
493
506
|
for (NSInteger index = 0; index < self.detents.count; index++) {
|
|
@@ -528,14 +541,12 @@
|
|
|
528
541
|
return [UISheetPresentationControllerDetent mediumDetent];
|
|
529
542
|
}
|
|
530
543
|
|
|
531
|
-
CGFloat value = [detent
|
|
544
|
+
CGFloat value = [detent doubleValue];
|
|
532
545
|
|
|
533
546
|
// -1 represents "auto" (fit content height)
|
|
534
547
|
if (value == -1) {
|
|
535
548
|
if (@available(iOS 16.0, *)) {
|
|
536
|
-
|
|
537
|
-
// iOS adds bottom safe area to sheet height internally
|
|
538
|
-
return [self customDetentWithIdentifier:@"custom-auto" height:autoHeight - self.bottomInset];
|
|
549
|
+
return [self customDetentWithIdentifier:@"custom-auto" height:autoHeight];
|
|
539
550
|
} else {
|
|
540
551
|
return [UISheetPresentationControllerDetent mediumDetent];
|
|
541
552
|
}
|
|
@@ -548,9 +559,7 @@
|
|
|
548
559
|
|
|
549
560
|
if (@available(iOS 16.0, *)) {
|
|
550
561
|
NSString *detentId = [NSString stringWithFormat:@"custom-%f", value];
|
|
551
|
-
|
|
552
|
-
// iOS adds bottom safe area to sheet height internally
|
|
553
|
-
CGFloat sheetHeight = value * self.screenHeight - self.bottomInset;
|
|
562
|
+
CGFloat sheetHeight = value * self.screenHeight;
|
|
554
563
|
return [self customDetentWithIdentifier:detentId height:sheetHeight];
|
|
555
564
|
} else if (value >= 0.5) {
|
|
556
565
|
return [UISheetPresentationControllerDetent largeDetent];
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
self.userInteractionEnabled = self.blurInteraction;
|
|
83
83
|
|
|
84
84
|
// Use animator to control blur intensity
|
|
85
|
-
__weak
|
|
85
|
+
__weak __typeof(self) weakSelf = self;
|
|
86
86
|
_blurAnimator = [[UIViewPropertyAnimator alloc] initWithDuration:1.0
|
|
87
87
|
curve:UIViewAnimationCurveLinear
|
|
88
88
|
animations:^{
|
package/lib/module/TrueSheet.js
CHANGED
|
@@ -7,7 +7,7 @@ import TrueSheetContentViewNativeComponent from './fabric/TrueSheetContentViewNa
|
|
|
7
7
|
import TrueSheetHeaderViewNativeComponent from './fabric/TrueSheetHeaderViewNativeComponent';
|
|
8
8
|
import TrueSheetFooterViewNativeComponent from './fabric/TrueSheetFooterViewNativeComponent';
|
|
9
9
|
import TrueSheetModule from "./specs/NativeTrueSheetModule.js";
|
|
10
|
-
import { Platform, processColor, StyleSheet, findNodeHandle } from 'react-native';
|
|
10
|
+
import { Platform, processColor, StyleSheet, findNodeHandle, View } from 'react-native';
|
|
11
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
const LINKING_ERROR = `The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
13
13
|
ios: "- You have run 'pod install'\n",
|
|
@@ -341,6 +341,9 @@ export class TrueSheet extends PureComponent {
|
|
|
341
341
|
}), footer && /*#__PURE__*/_jsx(TrueSheetFooterViewNativeComponent, {
|
|
342
342
|
style: styles.footer,
|
|
343
343
|
children: /*#__PURE__*/isValidElement(footer) ? footer : /*#__PURE__*/createElement(footer)
|
|
344
|
+
}), Platform.OS === 'android' && grabber && draggable && /*#__PURE__*/_jsx(View, {
|
|
345
|
+
collapsable: false,
|
|
346
|
+
style: styles.grabberHitbox
|
|
344
347
|
})]
|
|
345
348
|
})
|
|
346
349
|
});
|
|
@@ -373,6 +376,13 @@ const styles = StyleSheet.create({
|
|
|
373
376
|
position: 'absolute',
|
|
374
377
|
left: 0,
|
|
375
378
|
right: 0
|
|
379
|
+
},
|
|
380
|
+
grabberHitbox: {
|
|
381
|
+
position: 'absolute',
|
|
382
|
+
top: 0,
|
|
383
|
+
left: 0,
|
|
384
|
+
right: 0,
|
|
385
|
+
height: 48 // Material Design 3 minimum touch target
|
|
376
386
|
}
|
|
377
387
|
});
|
|
378
388
|
//# sourceMappingURL=TrueSheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","processColor","StyleSheet","findNodeHandle","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","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","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","dimmed","initialDetentAnimated","keyboardMode","dimmedDetentIndex","blurTint","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableContent","ref","sheetView","background","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis"],"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","processColor","StyleSheet","findNodeHandle","View","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","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","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","dimmed","initialDetentAnimated","keyboardMode","dimmedDetentIndex","blurTint","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableContent","ref","sheetView","background","OS","collapsable","grabberHitbox","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis","height"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,6 @@ import type {
|
|
|
4
4
|
Double,
|
|
5
5
|
Int32,
|
|
6
6
|
WithDefault,
|
|
7
|
-
Float,
|
|
8
7
|
} from 'react-native/Libraries/Types/CodegenTypes';
|
|
9
8
|
import { codegenNativeComponent } from 'react-native';
|
|
10
9
|
|
|
@@ -23,7 +22,7 @@ export interface PositionChangeEventPayload {
|
|
|
23
22
|
|
|
24
23
|
export interface NativeProps extends ViewProps {
|
|
25
24
|
// Array properties
|
|
26
|
-
detents?: ReadonlyArray<
|
|
25
|
+
detents?: ReadonlyArray<Double>;
|
|
27
26
|
|
|
28
27
|
// Number properties - use 0 as default to avoid nil insertion
|
|
29
28
|
maxHeight?: WithDefault<Double, 0>;
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,gBAAa;AAC3B,cAAc,sBAAmB;AACjC,cAAc,
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,gBAAa;AAC3B,cAAc,sBAAmB;AACjC,cAAc,uBAAc","ignoreList":[]}
|
|
@@ -58,25 +58,26 @@ export const ReanimatedTrueSheet = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
58
58
|
const {
|
|
59
59
|
animatedPosition,
|
|
60
60
|
animatedIndex,
|
|
61
|
-
|
|
61
|
+
animatedDetent
|
|
62
62
|
} = useReanimatedTrueSheet();
|
|
63
63
|
const positionChangeHandler = useReanimatedPositionChangeHandler(payload => {
|
|
64
64
|
'worklet';
|
|
65
65
|
|
|
66
|
-
// Update detent directly (discrete value, not animated)
|
|
67
|
-
detent.value = payload.detent;
|
|
68
66
|
if (payload.realtime) {
|
|
69
67
|
// Update directly when we have real-time values (during drag or animation tracking)
|
|
70
68
|
animatedPosition.value = payload.position;
|
|
71
69
|
animatedIndex.value = payload.index;
|
|
70
|
+
animatedDetent.value = payload.detent;
|
|
72
71
|
} else {
|
|
73
|
-
// Animate position and
|
|
72
|
+
// Animate position, index, and detent when not real-time
|
|
74
73
|
if (Platform.OS === 'android') {
|
|
75
74
|
animatedPosition.value = withTiming(payload.position, TIMING_CONFIG);
|
|
76
75
|
animatedIndex.value = withTiming(payload.index, TIMING_CONFIG);
|
|
76
|
+
animatedDetent.value = withTiming(payload.detent, TIMING_CONFIG);
|
|
77
77
|
} else {
|
|
78
78
|
animatedPosition.value = withSpring(payload.position, SPRING_CONFIG);
|
|
79
79
|
animatedIndex.value = withSpring(payload.index, SPRING_CONFIG);
|
|
80
|
+
animatedDetent.value = withSpring(payload.detent, SPRING_CONFIG);
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
83
|
onPositionChange?.({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","Animated","withSpring","withTiming","Easing","Platform","TrueSheet","useReanimatedTrueSheet","useReanimatedPositionChangeHandler","jsx","_jsx","SPRING_CONFIG","damping","stiffness","mass","overshootClamping","TIMING_CONFIG","duration","easing","bezier","AnimatedTrueSheet","createAnimatedComponent","ReanimatedTrueSheet","props","ref","onPositionChange","rest","animatedPosition","animatedIndex","
|
|
1
|
+
{"version":3,"names":["forwardRef","Animated","withSpring","withTiming","Easing","Platform","TrueSheet","useReanimatedTrueSheet","useReanimatedPositionChangeHandler","jsx","_jsx","SPRING_CONFIG","damping","stiffness","mass","overshootClamping","TIMING_CONFIG","duration","easing","bezier","AnimatedTrueSheet","createAnimatedComponent","ReanimatedTrueSheet","props","ref","onPositionChange","rest","animatedPosition","animatedIndex","animatedDetent","positionChangeHandler","payload","realtime","value","position","index","detent","OS","nativeEvent"],"sourceRoot":"../../../src","sources":["reanimated/ReanimatedTrueSheet.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,OAAOC,QAAQ,IAGbC,UAAU,EACVC,UAAU,EACVC,MAAM,QACD,yBAAyB;AAChC,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,SAAS,QAAQ,iBAAc;AAExC,SAASC,sBAAsB,QAAQ,kCAA+B;AACtE,SAASC,kCAAkC,QAAQ,yCAAsC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1F,MAAMC,aAA+B,GAAG;EACtCC,OAAO,EAAE,GAAG;EACZC,SAAS,EAAE,IAAI;EACfC,IAAI,EAAE,CAAC;EACPC,iBAAiB,EAAE;AACrB,CAAC;AAED,MAAMC,aAA+B,GAAG;EACtCC,QAAQ,EAAE,GAAG;EACbC,MAAM,EAAEd,MAAM,CAACe,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC1C,CAAC;AAWD;AACA,MAAMC,iBAAiB,GAAGnB,QAAQ,CAACoB,uBAAuB,CAACf,SAAS,CAAC;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMgB,mBAAmB,gBAAGtB,UAAU,CAAsC,CAACuB,KAAK,EAAEC,GAAG,KAAK;EACjG,MAAM;IAAEC,gBAAgB;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAE3C,MAAM;IAAEI,gBAAgB;IAAEC,aAAa;IAAEC;EAAe,CAAC,GAAGtB,sBAAsB,CAAC,CAAC;EAEpF,MAAMuB,qBAAqB,GAAGtB,kCAAkC,CAAEuB,OAAO,IAAK;IAC5E,SAAS;;IAET,IAAIA,OAAO,CAACC,QAAQ,EAAE;MACpB;MACAL,gBAAgB,CAACM,KAAK,GAAGF,OAAO,CAACG,QAAQ;MACzCN,aAAa,CAACK,KAAK,GAAGF,OAAO,CAACI,KAAK;MACnCN,cAAc,CAACI,KAAK,GAAGF,OAAO,CAACK,MAAM;IACvC,CAAC,MAAM;MACL;MACA,IAAI/B,QAAQ,CAACgC,EAAE,KAAK,SAAS,EAAE;QAC7BV,gBAAgB,CAACM,KAAK,GAAG9B,UAAU,CAAC4B,OAAO,CAACG,QAAQ,EAAElB,aAAa,CAAC;QACpEY,aAAa,CAACK,KAAK,GAAG9B,UAAU,CAAC4B,OAAO,CAACI,KAAK,EAAEnB,aAAa,CAAC;QAC9Da,cAAc,CAACI,KAAK,GAAG9B,UAAU,CAAC4B,OAAO,CAACK,MAAM,EAAEpB,aAAa,CAAC;MAClE,CAAC,MAAM;QACLW,gBAAgB,CAACM,KAAK,GAAG/B,UAAU,CAAC6B,OAAO,CAACG,QAAQ,EAAEvB,aAAa,CAAC;QACpEiB,aAAa,CAACK,KAAK,GAAG/B,UAAU,CAAC6B,OAAO,CAACI,KAAK,EAAExB,aAAa,CAAC;QAC9DkB,cAAc,CAACI,KAAK,GAAG/B,UAAU,CAAC6B,OAAO,CAACK,MAAM,EAAEzB,aAAa,CAAC;MAClE;IACF;IAEAc,gBAAgB,GAAG;MAAEa,WAAW,EAAEP;IAAQ,CAAwB,CAAC;EACrE,CAAC,CAAC;EAEF,oBAAOrB,IAAA,CAACU,iBAAiB;IAACI,GAAG,EAAEA,GAAI;IAACC,gBAAgB,EAAEK,qBAAsB;IAAA,GAAKJ;EAAI,CAAG,CAAC;AAC3F,CAAC,CAAC","ignoreList":[]}
|
|
@@ -30,12 +30,12 @@ export const ReanimatedTrueSheetProvider = ({
|
|
|
30
30
|
} = useWindowDimensions();
|
|
31
31
|
const animatedPosition = useSharedValue(height);
|
|
32
32
|
const animatedIndex = useSharedValue(-1);
|
|
33
|
-
const
|
|
33
|
+
const animatedDetent = useSharedValue(0);
|
|
34
34
|
const value = useMemo(() => ({
|
|
35
35
|
animatedPosition,
|
|
36
36
|
animatedIndex,
|
|
37
|
-
|
|
38
|
-
}), [animatedPosition, animatedIndex,
|
|
37
|
+
animatedDetent
|
|
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","useMemo","useWindowDimensions","useSharedValue","jsx","_jsx","ReanimatedTrueSheetContext","ReanimatedTrueSheetProvider","children","height","animatedPosition","animatedIndex","
|
|
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;IACLS,gBAAgB;IAChBC,aAAa;IACbC;EACF,CAAC,CAAC,EACF,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":[]}
|
|
@@ -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,EAef,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;gBAE7C,KAAK,EAAE,cAAc;IA+BjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;;OAMG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3E;;;;;OAKG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD;;;;;;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;;;OAGG;IACU,OAAO,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtD;;;OAGG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,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,EAef,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;gBAE7C,KAAK,EAAE,cAAc;IA+BjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;;OAMG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3E;;;;;OAKG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD;;;;;;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;;;OAGG;IACU,OAAO,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtD;;;OAGG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;CA4GpB"}
|
|
@@ -211,11 +211,12 @@ export interface TrueSheetProps extends ViewProps {
|
|
|
211
211
|
*/
|
|
212
212
|
footer?: ComponentType<unknown> | ReactElement;
|
|
213
213
|
/**
|
|
214
|
-
*
|
|
214
|
+
* On iOS, automatically pins ScrollView or FlatList to fit within the sheet's available space.
|
|
215
215
|
* When enabled, the ScrollView's top edge will be pinned below any top sibling views,
|
|
216
216
|
* and its left, right, and bottom edges will be pinned to the container.
|
|
217
217
|
*
|
|
218
|
-
*
|
|
218
|
+
* On Android, it adds additional style to the content for scrollable to work.
|
|
219
|
+
*
|
|
219
220
|
* @default false
|
|
220
221
|
*/
|
|
221
222
|
scrollable?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheet.types.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TrueSheet.types.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ViewProps } from 'react-native';
|
|
2
|
-
import type { DirectEventHandler, Double, Int32, WithDefault
|
|
2
|
+
import type { DirectEventHandler, Double, Int32, WithDefault } from 'react-native/Libraries/Types/CodegenTypes';
|
|
3
3
|
export interface DetentInfoEventPayload {
|
|
4
4
|
index: Int32;
|
|
5
5
|
position: Double;
|
|
@@ -12,7 +12,7 @@ export interface PositionChangeEventPayload {
|
|
|
12
12
|
realtime: boolean;
|
|
13
13
|
}
|
|
14
14
|
export interface NativeProps extends ViewProps {
|
|
15
|
-
detents?: ReadonlyArray<
|
|
15
|
+
detents?: ReadonlyArray<Double>;
|
|
16
16
|
maxHeight?: WithDefault<Double, 0>;
|
|
17
17
|
background?: WithDefault<Int32, 0>;
|
|
18
18
|
cornerRadius?: WithDefault<Double, -1>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/TrueSheetViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"TrueSheetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/TrueSheetViewNativeComponent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
|
|
@@ -12,9 +12,9 @@ export interface ReanimatedTrueSheetContextValue {
|
|
|
12
12
|
animatedIndex: SharedValue<number>;
|
|
13
13
|
/**
|
|
14
14
|
* Shared value representing the current detent value (0-1 fraction of screen height).
|
|
15
|
-
*
|
|
15
|
+
* Interpolates smoothly between detent values as the sheet is dragged.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
animatedDetent: SharedValue<number>;
|
|
18
18
|
}
|
|
19
19
|
export interface ReanimatedTrueSheetProviderProps {
|
|
20
20
|
children: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,4CAoBzF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,sBAAsB,QAAO,+BAWzC,CAAC"}
|
package/package.json
CHANGED
package/src/TrueSheet.tsx
CHANGED
|
@@ -33,7 +33,7 @@ import TrueSheetFooterViewNativeComponent from './fabric/TrueSheetFooterViewNati
|
|
|
33
33
|
|
|
34
34
|
import TrueSheetModule from './specs/NativeTrueSheetModule';
|
|
35
35
|
|
|
36
|
-
import { Platform, processColor, StyleSheet, findNodeHandle } from 'react-native';
|
|
36
|
+
import { Platform, processColor, StyleSheet, findNodeHandle, View } from 'react-native';
|
|
37
37
|
|
|
38
38
|
const LINKING_ERROR =
|
|
39
39
|
`The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` +
|
|
@@ -431,6 +431,10 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
431
431
|
{isValidElement(footer) ? footer : createElement(footer)}
|
|
432
432
|
</TrueSheetFooterViewNativeComponent>
|
|
433
433
|
)}
|
|
434
|
+
{/* Grabber hitbox for Android - allows dragging the sheet from the top area */}
|
|
435
|
+
{Platform.OS === 'android' && grabber && draggable && (
|
|
436
|
+
<View collapsable={false} style={styles.grabberHitbox} />
|
|
437
|
+
)}
|
|
434
438
|
</TrueSheetContainerViewNativeComponent>
|
|
435
439
|
)}
|
|
436
440
|
</TrueSheetViewNativeComponent>
|
|
@@ -465,4 +469,11 @@ const styles = StyleSheet.create({
|
|
|
465
469
|
left: 0,
|
|
466
470
|
right: 0,
|
|
467
471
|
},
|
|
472
|
+
grabberHitbox: {
|
|
473
|
+
position: 'absolute',
|
|
474
|
+
top: 0,
|
|
475
|
+
left: 0,
|
|
476
|
+
right: 0,
|
|
477
|
+
height: 48, // Material Design 3 minimum touch target
|
|
478
|
+
},
|
|
468
479
|
});
|
package/src/TrueSheet.types.ts
CHANGED
|
@@ -257,11 +257,12 @@ export interface TrueSheetProps extends ViewProps {
|
|
|
257
257
|
footer?: ComponentType<unknown> | ReactElement;
|
|
258
258
|
|
|
259
259
|
/**
|
|
260
|
-
*
|
|
260
|
+
* On iOS, automatically pins ScrollView or FlatList to fit within the sheet's available space.
|
|
261
261
|
* When enabled, the ScrollView's top edge will be pinned below any top sibling views,
|
|
262
262
|
* and its left, right, and bottom edges will be pinned to the container.
|
|
263
263
|
*
|
|
264
|
-
*
|
|
264
|
+
* On Android, it adds additional style to the content for scrollable to work.
|
|
265
|
+
*
|
|
265
266
|
* @default false
|
|
266
267
|
*/
|
|
267
268
|
scrollable?: boolean;
|
package/src/__mocks__/index.js
CHANGED
|
@@ -47,11 +47,6 @@ export class ReanimatedTrueSheet extends TrueSheet {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
// Mock TrueSheetGrabber
|
|
51
|
-
export const TrueSheetGrabber = ({ style, ...props }) => (
|
|
52
|
-
<View style={style} {...props} testID="true-sheet-grabber" />
|
|
53
|
-
);
|
|
54
|
-
|
|
55
50
|
// Mock ReanimatedTrueSheetProvider
|
|
56
51
|
export const ReanimatedTrueSheetProvider = ({ children }) => <>{children}</>;
|
|
57
52
|
|
|
@@ -4,7 +4,6 @@ import type {
|
|
|
4
4
|
Double,
|
|
5
5
|
Int32,
|
|
6
6
|
WithDefault,
|
|
7
|
-
Float,
|
|
8
7
|
} from 'react-native/Libraries/Types/CodegenTypes';
|
|
9
8
|
import { codegenNativeComponent } from 'react-native';
|
|
10
9
|
|
|
@@ -23,7 +22,7 @@ export interface PositionChangeEventPayload {
|
|
|
23
22
|
|
|
24
23
|
export interface NativeProps extends ViewProps {
|
|
25
24
|
// Array properties
|
|
26
|
-
detents?: ReadonlyArray<
|
|
25
|
+
detents?: ReadonlyArray<Double>;
|
|
27
26
|
|
|
28
27
|
// Number properties - use 0 as default to avoid nil insertion
|
|
29
28
|
maxHeight?: WithDefault<Double, 0>;
|
package/src/index.ts
CHANGED
|
@@ -70,26 +70,26 @@ const AnimatedTrueSheet = Animated.createAnimatedComponent(TrueSheet);
|
|
|
70
70
|
export const ReanimatedTrueSheet = forwardRef<TrueSheet, ReanimatedTrueSheetProps>((props, ref) => {
|
|
71
71
|
const { onPositionChange, ...rest } = props;
|
|
72
72
|
|
|
73
|
-
const { animatedPosition, animatedIndex,
|
|
73
|
+
const { animatedPosition, animatedIndex, animatedDetent } = useReanimatedTrueSheet();
|
|
74
74
|
|
|
75
75
|
const positionChangeHandler = useReanimatedPositionChangeHandler((payload) => {
|
|
76
76
|
'worklet';
|
|
77
77
|
|
|
78
|
-
// Update detent directly (discrete value, not animated)
|
|
79
|
-
detent.value = payload.detent;
|
|
80
|
-
|
|
81
78
|
if (payload.realtime) {
|
|
82
79
|
// Update directly when we have real-time values (during drag or animation tracking)
|
|
83
80
|
animatedPosition.value = payload.position;
|
|
84
81
|
animatedIndex.value = payload.index;
|
|
82
|
+
animatedDetent.value = payload.detent;
|
|
85
83
|
} else {
|
|
86
|
-
// Animate position and
|
|
84
|
+
// Animate position, index, and detent when not real-time
|
|
87
85
|
if (Platform.OS === 'android') {
|
|
88
86
|
animatedPosition.value = withTiming(payload.position, TIMING_CONFIG);
|
|
89
87
|
animatedIndex.value = withTiming(payload.index, TIMING_CONFIG);
|
|
88
|
+
animatedDetent.value = withTiming(payload.detent, TIMING_CONFIG);
|
|
90
89
|
} else {
|
|
91
90
|
animatedPosition.value = withSpring(payload.position, SPRING_CONFIG);
|
|
92
91
|
animatedIndex.value = withSpring(payload.index, SPRING_CONFIG);
|
|
92
|
+
animatedDetent.value = withSpring(payload.detent, SPRING_CONFIG);
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
|
|
@@ -14,9 +14,9 @@ export interface ReanimatedTrueSheetContextValue {
|
|
|
14
14
|
animatedIndex: SharedValue<number>;
|
|
15
15
|
/**
|
|
16
16
|
* Shared value representing the current detent value (0-1 fraction of screen height).
|
|
17
|
-
*
|
|
17
|
+
* Interpolates smoothly between detent values as the sheet is dragged.
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
animatedDetent: SharedValue<number>;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
const ReanimatedTrueSheetContext = createContext<ReanimatedTrueSheetContextValue | null>(null);
|
|
@@ -46,15 +46,15 @@ export const ReanimatedTrueSheetProvider = ({ children }: ReanimatedTrueSheetPro
|
|
|
46
46
|
const { height } = useWindowDimensions();
|
|
47
47
|
const animatedPosition = useSharedValue(height);
|
|
48
48
|
const animatedIndex = useSharedValue(-1);
|
|
49
|
-
const
|
|
49
|
+
const animatedDetent = useSharedValue(0);
|
|
50
50
|
|
|
51
51
|
const value = useMemo(
|
|
52
52
|
() => ({
|
|
53
53
|
animatedPosition,
|
|
54
54
|
animatedIndex,
|
|
55
|
-
|
|
55
|
+
animatedDetent,
|
|
56
56
|
}),
|
|
57
|
-
[animatedPosition, animatedIndex,
|
|
57
|
+
[animatedPosition, animatedIndex, animatedDetent]
|
|
58
58
|
);
|
|
59
59
|
|
|
60
60
|
return (
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { StyleSheet, View } from 'react-native';
|
|
4
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
const GRABBER_DEFAULT_HEIGHT = 4;
|
|
6
|
-
const GRABBER_DEFAULT_WIDTH = 32;
|
|
7
|
-
|
|
8
|
-
// M3 spec: #49454F 0.4 alpha
|
|
9
|
-
const GRABBER_DEFAULT_COLOR = 'rgba(73,69,79,0.4)';
|
|
10
|
-
/**
|
|
11
|
-
* Grabber component.
|
|
12
|
-
* Used by defualt for Android but feel free to re-use.
|
|
13
|
-
*/
|
|
14
|
-
export const TrueSheetGrabber = props => {
|
|
15
|
-
const {
|
|
16
|
-
visible = true,
|
|
17
|
-
color = GRABBER_DEFAULT_COLOR,
|
|
18
|
-
width = GRABBER_DEFAULT_WIDTH,
|
|
19
|
-
height = GRABBER_DEFAULT_HEIGHT,
|
|
20
|
-
topOffset = 0,
|
|
21
|
-
style
|
|
22
|
-
} = props;
|
|
23
|
-
if (!visible) return null;
|
|
24
|
-
return /*#__PURE__*/_jsx(View, {
|
|
25
|
-
style: [styles.wrapper, style, {
|
|
26
|
-
height: GRABBER_DEFAULT_HEIGHT * 4,
|
|
27
|
-
top: topOffset
|
|
28
|
-
}],
|
|
29
|
-
children: /*#__PURE__*/_jsx(View, {
|
|
30
|
-
style: [styles.grabber, {
|
|
31
|
-
height,
|
|
32
|
-
width,
|
|
33
|
-
backgroundColor: color
|
|
34
|
-
}]
|
|
35
|
-
})
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
const styles = StyleSheet.create({
|
|
39
|
-
wrapper: {
|
|
40
|
-
position: 'absolute',
|
|
41
|
-
alignSelf: 'center',
|
|
42
|
-
paddingHorizontal: 12,
|
|
43
|
-
alignItems: 'center',
|
|
44
|
-
justifyContent: 'center',
|
|
45
|
-
zIndex: 9999
|
|
46
|
-
},
|
|
47
|
-
grabber: {
|
|
48
|
-
borderRadius: GRABBER_DEFAULT_HEIGHT / 2
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
//# sourceMappingURL=TrueSheetGrabber.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","View","jsx","_jsx","GRABBER_DEFAULT_HEIGHT","GRABBER_DEFAULT_WIDTH","GRABBER_DEFAULT_COLOR","TrueSheetGrabber","props","visible","color","width","height","topOffset","style","styles","wrapper","top","children","grabber","backgroundColor","create","position","alignSelf","paddingHorizontal","alignItems","justifyContent","zIndex","borderRadius"],"sourceRoot":"../../src","sources":["TrueSheetGrabber.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAyD,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEjG,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,qBAAqB,GAAG,EAAE;;AAEhC;AACA,MAAMC,qBAAqB,GAAG,oBAAoB;AAwClD;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAIC,KAA4B,IAAK;EAChE,MAAM;IACJC,OAAO,GAAG,IAAI;IACdC,KAAK,GAAGJ,qBAAqB;IAC7BK,KAAK,GAAGN,qBAAqB;IAC7BO,MAAM,GAAGR,sBAAsB;IAC/BS,SAAS,GAAG,CAAC;IACbC;EACF,CAAC,GAAGN,KAAK;EAET,IAAI,CAACC,OAAO,EAAE,OAAO,IAAI;EAEzB,oBACEN,IAAA,CAACF,IAAI;IAACa,KAAK,EAAE,CAACC,MAAM,CAACC,OAAO,EAAEF,KAAK,EAAE;MAAEF,MAAM,EAAER,sBAAsB,GAAG,CAAC;MAAEa,GAAG,EAAEJ;IAAU,CAAC,CAAE;IAAAK,QAAA,eAC3Ff,IAAA,CAACF,IAAI;MAACa,KAAK,EAAE,CAACC,MAAM,CAACI,OAAO,EAAE;QAAEP,MAAM;QAAED,KAAK;QAAES,eAAe,EAAEV;MAAM,CAAC;IAAE,CAAE;EAAC,CACxE,CAAC;AAEX,CAAC;AAED,MAAMK,MAAM,GAAGf,UAAU,CAACqB,MAAM,CAAC;EAC/BL,OAAO,EAAE;IACPM,QAAQ,EAAE,UAAU;IACpBC,SAAS,EAAE,QAAQ;IACnBC,iBAAiB,EAAE,EAAE;IACrBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,MAAM,EAAE;EACV,CAAC;EACDR,OAAO,EAAE;IACPS,YAAY,EAAExB,sBAAsB,GAAG;EACzC;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { type ColorValue, type StyleProp, type ViewStyle } from 'react-native';
|
|
2
|
-
export interface TrueSheetGrabberProps {
|
|
3
|
-
/**
|
|
4
|
-
* Is grabber visible.
|
|
5
|
-
* @default true
|
|
6
|
-
*/
|
|
7
|
-
visible?: boolean;
|
|
8
|
-
/**
|
|
9
|
-
* Optional style that overrides the default style.
|
|
10
|
-
*/
|
|
11
|
-
style?: StyleProp<ViewStyle>;
|
|
12
|
-
/**
|
|
13
|
-
* Grabber color according to M3 specs.
|
|
14
|
-
* @default rgba(73,69,79,0.4)
|
|
15
|
-
*/
|
|
16
|
-
color?: ColorValue;
|
|
17
|
-
/**
|
|
18
|
-
* Grabber height according to M3 specs.
|
|
19
|
-
* @default 4
|
|
20
|
-
*/
|
|
21
|
-
height?: number;
|
|
22
|
-
/**
|
|
23
|
-
* Grabber top position offset.
|
|
24
|
-
*
|
|
25
|
-
* @default 6
|
|
26
|
-
*/
|
|
27
|
-
topOffset?: number;
|
|
28
|
-
/**
|
|
29
|
-
* Grabber width according to M3 specs.
|
|
30
|
-
* @default 32
|
|
31
|
-
*/
|
|
32
|
-
width?: number;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Grabber component.
|
|
36
|
-
* Used by defualt for Android but feel free to re-use.
|
|
37
|
-
*/
|
|
38
|
-
export declare const TrueSheetGrabber: (props: TrueSheetGrabberProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
39
|
-
//# sourceMappingURL=TrueSheetGrabber.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheetGrabber.d.ts","sourceRoot":"","sources":["../../../src/TrueSheetGrabber.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAQjG,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE7B;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,mDAiB5D,CAAC"}
|
package/src/TrueSheetGrabber.tsx
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { StyleSheet, View, type ColorValue, type StyleProp, type ViewStyle } from 'react-native';
|
|
2
|
-
|
|
3
|
-
const GRABBER_DEFAULT_HEIGHT = 4;
|
|
4
|
-
const GRABBER_DEFAULT_WIDTH = 32;
|
|
5
|
-
|
|
6
|
-
// M3 spec: #49454F 0.4 alpha
|
|
7
|
-
const GRABBER_DEFAULT_COLOR = 'rgba(73,69,79,0.4)';
|
|
8
|
-
|
|
9
|
-
export interface TrueSheetGrabberProps {
|
|
10
|
-
/**
|
|
11
|
-
* Is grabber visible.
|
|
12
|
-
* @default true
|
|
13
|
-
*/
|
|
14
|
-
visible?: boolean;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Optional style that overrides the default style.
|
|
18
|
-
*/
|
|
19
|
-
style?: StyleProp<ViewStyle>;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Grabber color according to M3 specs.
|
|
23
|
-
* @default rgba(73,69,79,0.4)
|
|
24
|
-
*/
|
|
25
|
-
color?: ColorValue;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Grabber height according to M3 specs.
|
|
29
|
-
* @default 4
|
|
30
|
-
*/
|
|
31
|
-
height?: number;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Grabber top position offset.
|
|
35
|
-
*
|
|
36
|
-
* @default 6
|
|
37
|
-
*/
|
|
38
|
-
topOffset?: number;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Grabber width according to M3 specs.
|
|
42
|
-
* @default 32
|
|
43
|
-
*/
|
|
44
|
-
width?: number;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Grabber component.
|
|
49
|
-
* Used by defualt for Android but feel free to re-use.
|
|
50
|
-
*/
|
|
51
|
-
export const TrueSheetGrabber = (props: TrueSheetGrabberProps) => {
|
|
52
|
-
const {
|
|
53
|
-
visible = true,
|
|
54
|
-
color = GRABBER_DEFAULT_COLOR,
|
|
55
|
-
width = GRABBER_DEFAULT_WIDTH,
|
|
56
|
-
height = GRABBER_DEFAULT_HEIGHT,
|
|
57
|
-
topOffset = 0,
|
|
58
|
-
style,
|
|
59
|
-
} = props;
|
|
60
|
-
|
|
61
|
-
if (!visible) return null;
|
|
62
|
-
|
|
63
|
-
return (
|
|
64
|
-
<View style={[styles.wrapper, style, { height: GRABBER_DEFAULT_HEIGHT * 4, top: topOffset }]}>
|
|
65
|
-
<View style={[styles.grabber, { height, width, backgroundColor: color }]} />
|
|
66
|
-
</View>
|
|
67
|
-
);
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
const styles = StyleSheet.create({
|
|
71
|
-
wrapper: {
|
|
72
|
-
position: 'absolute',
|
|
73
|
-
alignSelf: 'center',
|
|
74
|
-
paddingHorizontal: 12,
|
|
75
|
-
alignItems: 'center',
|
|
76
|
-
justifyContent: 'center',
|
|
77
|
-
zIndex: 9999,
|
|
78
|
-
},
|
|
79
|
-
grabber: {
|
|
80
|
-
borderRadius: GRABBER_DEFAULT_HEIGHT / 2,
|
|
81
|
-
},
|
|
82
|
-
});
|