@lodev09/react-native-true-sheet 0.13.0 → 1.0.0

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.
Files changed (74) hide show
  1. package/android/build.gradle +6 -1
  2. package/android/src/main/java/com/lodev09/truesheet/TrueSheetDialog.kt +27 -4
  3. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +10 -0
  4. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +7 -0
  5. package/android/src/main/java/com/lodev09/truesheet/core/RootSheetView.kt +2 -26
  6. package/android/src/main/java/com/lodev09/truesheet/core/Utils.kt +11 -2
  7. package/android/src/main/java/com/lodev09/truesheet/events/ContainerSizeChangeEvent.kt +23 -0
  8. package/ios/TrueSheet-Bridging-Header.h +1 -0
  9. package/ios/TrueSheetView.swift +39 -40
  10. package/ios/TrueSheetViewManager.m +1 -0
  11. package/ios/TrueSheetViewManager.swift +6 -4
  12. package/lib/commonjs/TrueSheet.js +56 -36
  13. package/lib/commonjs/TrueSheet.js.map +1 -1
  14. package/lib/commonjs/TrueSheetFooter.js +2 -3
  15. package/lib/commonjs/TrueSheetFooter.js.map +1 -1
  16. package/lib/commonjs/TrueSheetGrabber.js +11 -11
  17. package/lib/commonjs/TrueSheetGrabber.js.map +1 -1
  18. package/lib/commonjs/TrueSheetModule.js.map +1 -1
  19. package/lib/commonjs/index.js +6 -6
  20. package/lib/commonjs/index.js.map +1 -1
  21. package/lib/module/TrueSheet.js +58 -34
  22. package/lib/module/TrueSheet.js.map +1 -1
  23. package/lib/module/TrueSheet.types.js +2 -0
  24. package/lib/module/TrueSheetFooter.js +4 -2
  25. package/lib/module/TrueSheetFooter.js.map +1 -1
  26. package/lib/module/TrueSheetGrabber.js +13 -10
  27. package/lib/module/TrueSheetGrabber.js.map +1 -1
  28. package/lib/module/TrueSheetModule.js +2 -0
  29. package/lib/module/TrueSheetModule.js.map +1 -1
  30. package/lib/module/index.js +5 -3
  31. package/lib/module/index.js.map +1 -1
  32. package/lib/typescript/commonjs/package.json +1 -0
  33. package/lib/typescript/{src → commonjs/src}/TrueSheet.d.ts +3 -0
  34. package/lib/typescript/commonjs/src/TrueSheet.d.ts.map +1 -0
  35. package/lib/typescript/{src → commonjs/src}/TrueSheet.types.d.ts +7 -0
  36. package/lib/typescript/commonjs/src/TrueSheet.types.d.ts.map +1 -0
  37. package/lib/typescript/{src → commonjs/src}/TrueSheetFooter.d.ts +1 -2
  38. package/lib/typescript/commonjs/src/TrueSheetFooter.d.ts.map +1 -0
  39. package/lib/typescript/{src → commonjs/src}/TrueSheetGrabber.d.ts +1 -2
  40. package/lib/typescript/commonjs/src/TrueSheetGrabber.d.ts.map +1 -0
  41. package/lib/typescript/commonjs/src/TrueSheetModule.d.ts.map +1 -0
  42. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  43. package/lib/typescript/module/package.json +1 -0
  44. package/lib/typescript/module/src/TrueSheet.d.ts +62 -0
  45. package/lib/typescript/module/src/TrueSheet.d.ts.map +1 -0
  46. package/lib/typescript/module/src/TrueSheet.types.d.ts +212 -0
  47. package/lib/typescript/module/src/TrueSheet.types.d.ts.map +1 -0
  48. package/lib/typescript/module/src/TrueSheetFooter.d.ts +7 -0
  49. package/lib/typescript/module/src/TrueSheetFooter.d.ts.map +1 -0
  50. package/lib/typescript/module/src/TrueSheetGrabber.d.ts +39 -0
  51. package/lib/typescript/module/src/TrueSheetGrabber.d.ts.map +1 -0
  52. package/lib/typescript/module/src/TrueSheetModule.d.ts +2 -0
  53. package/lib/typescript/module/src/TrueSheetModule.d.ts.map +1 -0
  54. package/lib/typescript/module/src/index.d.ts +4 -0
  55. package/lib/typescript/module/src/index.d.ts.map +1 -0
  56. package/package.json +76 -62
  57. package/{TrueSheet.podspec → react-native-true-sheet.podspec} +19 -18
  58. package/src/TrueSheet.tsx +29 -5
  59. package/src/TrueSheet.types.ts +8 -0
  60. package/src/TrueSheetFooter.tsx +0 -1
  61. package/src/TrueSheetGrabber.tsx +0 -1
  62. package/lib/commonjs/__mocks__/index.js +0 -37
  63. package/lib/commonjs/__mocks__/index.js.map +0 -1
  64. package/lib/module/__mocks__/index.js +0 -15
  65. package/lib/module/__mocks__/index.js.map +0 -1
  66. package/lib/typescript/src/TrueSheet.d.ts.map +0 -1
  67. package/lib/typescript/src/TrueSheet.types.d.ts.map +0 -1
  68. package/lib/typescript/src/TrueSheetFooter.d.ts.map +0 -1
  69. package/lib/typescript/src/TrueSheetGrabber.d.ts.map +0 -1
  70. package/lib/typescript/src/TrueSheetModule.d.ts.map +0 -1
  71. package/lib/typescript/src/index.d.ts.map +0 -1
  72. package/src/__mocks__/index.js +0 -18
  73. /package/lib/typescript/{src → commonjs/src}/TrueSheetModule.d.ts +0 -0
  74. /package/lib/typescript/{src → commonjs/src}/index.d.ts +0 -0
@@ -14,6 +14,11 @@ buildscript {
14
14
  }
15
15
  }
16
16
 
17
+ def reactNativeArchitectures() {
18
+ def value = rootProject.getProperties().get("reactNativeArchitectures")
19
+ return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
20
+ }
21
+
17
22
  def isNewArchitectureEnabled() {
18
23
  return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
19
24
  }
@@ -90,6 +95,6 @@ dependencies {
90
95
  //noinspection GradleDynamicVersion
91
96
  implementation "com.facebook.react:react-native:+"
92
97
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
93
- implementation "com.google.android.material:material:1.11.0"
98
+ implementation 'com.google.android.material:material:1.12.0'
94
99
  }
95
100
 
@@ -42,6 +42,12 @@ class TrueSheetDialog(private val reactContext: ThemedReactContext, private val
42
42
  var footerHeight = 0
43
43
  var maxSheetHeight: Int? = null
44
44
 
45
+ var edgeToEdge: Boolean = false
46
+ set(value) {
47
+ field = value
48
+ maxScreenHeight = Utils.screenHeight(reactContext, value)
49
+ }
50
+
45
51
  var dismissible: Boolean = true
46
52
  set(value) {
47
53
  field = value
@@ -67,7 +73,24 @@ class TrueSheetDialog(private val reactContext: ThemedReactContext, private val
67
73
  }
68
74
 
69
75
  // Update the usable sheet height
70
- maxScreenHeight = Utils.screenHeight(reactContext)
76
+ maxScreenHeight = Utils.screenHeight(reactContext, edgeToEdge)
77
+ }
78
+
79
+ override fun getEdgeToEdgeEnabled(): Boolean = edgeToEdge || super.getEdgeToEdgeEnabled()
80
+
81
+ override fun onStart() {
82
+ super.onStart()
83
+
84
+ if (edgeToEdge) {
85
+ window?.apply {
86
+ setFlags(
87
+ WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
88
+ WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
89
+ )
90
+
91
+ decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
92
+ }
93
+ }
71
94
  }
72
95
 
73
96
  /**
@@ -226,7 +249,7 @@ class TrueSheetDialog(private val reactContext: ThemedReactContext, private val
226
249
  override fun onKeyboardStateChange(isVisible: Boolean, visibleHeight: Int?) {
227
250
  maxScreenHeight = when (isVisible) {
228
251
  true -> visibleHeight ?: 0
229
- else -> Utils.screenHeight(reactContext)
252
+ else -> Utils.screenHeight(reactContext, edgeToEdge)
230
253
  }
231
254
 
232
255
  positionFooter()
@@ -234,8 +257,8 @@ class TrueSheetDialog(private val reactContext: ThemedReactContext, private val
234
257
  })
235
258
  }
236
259
 
237
- fun setOnSizeChangeListener(listener: RootSheetView.OnSizeChangeListener) {
238
- rootSheetView.setOnSizeChangeListener(listener)
260
+ fun setOnSizeChangeListener(listener: (w: Int, h: Int) -> Unit) {
261
+ rootSheetView.sizeChangeListener = listener
239
262
  }
240
263
 
241
264
  /**
@@ -12,6 +12,8 @@ import com.facebook.react.uimanager.UIManagerHelper
12
12
  import com.facebook.react.uimanager.events.EventDispatcher
13
13
  import com.google.android.material.bottomsheet.BottomSheetBehavior
14
14
  import com.lodev09.truesheet.core.RootSheetView
15
+ import com.lodev09.truesheet.core.Utils
16
+ import com.lodev09.truesheet.events.ContainerSizeChangeEvent
15
17
  import com.lodev09.truesheet.events.DismissEvent
16
18
  import com.lodev09.truesheet.events.MountEvent
17
19
  import com.lodev09.truesheet.events.PresentEvent
@@ -67,6 +69,10 @@ class TrueSheetView(context: Context) :
67
69
 
68
70
  // Configure Sheet Dialog
69
71
  sheetDialog.apply {
72
+ setOnSizeChangeListener { w, h ->
73
+ eventDispatcher?.dispatchEvent(ContainerSizeChangeEvent(surfaceId, id, Utils.toDIP(w), Utils.toDIP(h)))
74
+ }
75
+
70
76
  // Setup listener when the dialog has been presented.
71
77
  setOnShowListener {
72
78
  registerKeyboardManager()
@@ -240,6 +246,10 @@ class TrueSheetView(context: Context) :
240
246
  }
241
247
  }
242
248
 
249
+ fun setEdgeToEdge(edgeToEdge: Boolean) {
250
+ sheetDialog.edgeToEdge = edgeToEdge
251
+ }
252
+
243
253
  fun setMaxHeight(height: Int) {
244
254
  if (sheetDialog.maxSheetHeight == height) return
245
255
 
@@ -9,6 +9,7 @@ import com.facebook.react.uimanager.ThemedReactContext
9
9
  import com.facebook.react.uimanager.ViewGroupManager
10
10
  import com.facebook.react.uimanager.annotations.ReactProp
11
11
  import com.lodev09.truesheet.core.Utils
12
+ import com.lodev09.truesheet.events.ContainerSizeChangeEvent
12
13
  import com.lodev09.truesheet.events.DismissEvent
13
14
  import com.lodev09.truesheet.events.MountEvent
14
15
  import com.lodev09.truesheet.events.PresentEvent
@@ -30,8 +31,14 @@ class TrueSheetViewManager : ViewGroupManager<TrueSheetView>() {
30
31
  .put(PresentEvent.EVENT_NAME, MapBuilder.of("registrationName", "onPresent"))
31
32
  .put(DismissEvent.EVENT_NAME, MapBuilder.of("registrationName", "onDismiss"))
32
33
  .put(SizeChangeEvent.EVENT_NAME, MapBuilder.of("registrationName", "onSizeChange"))
34
+ .put(ContainerSizeChangeEvent.EVENT_NAME, MapBuilder.of("registrationName", "onContainerSizeChange"))
33
35
  .build()
34
36
 
37
+ @ReactProp(name = "edgeToEdge")
38
+ fun setEdgeToEdge(view: TrueSheetView, edgeToEdge: Boolean) {
39
+ view.setEdgeToEdge(edgeToEdge)
40
+ }
41
+
35
42
  @ReactProp(name = "maxHeight")
36
43
  fun setMaxHeight(view: TrueSheetView, height: Double) {
37
44
  view.setMaxHeight(Utils.toPixel(height))
@@ -4,13 +4,11 @@ import android.annotation.SuppressLint
4
4
  import android.content.Context
5
5
  import android.view.MotionEvent
6
6
  import android.view.View
7
- import com.facebook.react.bridge.GuardedRunnable
8
7
  import com.facebook.react.config.ReactFeatureFlags
9
8
  import com.facebook.react.uimanager.JSPointerDispatcher
10
9
  import com.facebook.react.uimanager.JSTouchDispatcher
11
10
  import com.facebook.react.uimanager.RootView
12
11
  import com.facebook.react.uimanager.ThemedReactContext
13
- import com.facebook.react.uimanager.UIManagerModule
14
12
  import com.facebook.react.uimanager.events.EventDispatcher
15
13
  import com.facebook.react.views.view.ReactViewGroup
16
14
 
@@ -35,14 +33,10 @@ class RootSheetView(private val context: Context?) :
35
33
 
36
34
  private val jSTouchDispatcher = JSTouchDispatcher(this)
37
35
  private var jSPointerDispatcher: JSPointerDispatcher? = null
38
- private var sizeChangeListener: OnSizeChangeListener? = null
36
+ public var sizeChangeListener: ((w: Int, h: Int) -> Unit)? = null
39
37
 
40
38
  var eventDispatcher: EventDispatcher? = null
41
39
 
42
- interface OnSizeChangeListener {
43
- fun onSizeChange(width: Int, height: Int)
44
- }
45
-
46
40
  init {
47
41
  if (ReactFeatureFlags.dispatchPointerEvents) {
48
42
  jSPointerDispatcher = JSPointerDispatcher(this)
@@ -55,30 +49,12 @@ class RootSheetView(private val context: Context?) :
55
49
  viewWidth = w
56
50
  viewHeight = h
57
51
  updateFirstChildView()
58
-
59
- sizeChangeListener?.onSizeChange(w, h)
60
- }
61
-
62
- fun setOnSizeChangeListener(listener: OnSizeChangeListener) {
63
- sizeChangeListener = listener
64
52
  }
65
53
 
66
54
  private fun updateFirstChildView() {
67
55
  if (childCount > 0) {
68
56
  hasAdjustedSize = false
69
- val viewTag = getChildAt(0).id
70
- reactContext.runOnNativeModulesQueueThread(
71
- object : GuardedRunnable(reactContext) {
72
- override fun runGuarded() {
73
- val uiManager: UIManagerModule =
74
- reactContext
75
- .reactApplicationContext
76
- .getNativeModule(UIManagerModule::class.java) ?: return
77
-
78
- uiManager.updateNodeSize(viewTag, viewWidth, viewHeight)
79
- }
80
- }
81
- )
57
+ sizeChangeListener?.let { it(viewWidth, viewHeight) }
82
58
  } else {
83
59
  hasAdjustedSize = true
84
60
  }
@@ -18,7 +18,7 @@ object Utils {
18
18
  ).takeIf { it > 0 } ?: 0
19
19
 
20
20
  @SuppressLint("InternalInsetResource", "DiscouragedApi")
21
- fun screenHeight(context: ReactContext): Int {
21
+ fun screenHeight(context: ReactContext, edgeToEdge: Boolean): Int {
22
22
  val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
23
23
  val displayMetrics = DisplayMetrics()
24
24
 
@@ -45,7 +45,16 @@ object Utils {
45
45
  0
46
46
  }
47
47
 
48
- return screenHeight - statusBarHeight - navigationBarHeight
48
+ return if (edgeToEdge) {
49
+ // getRealMetrics includes navigation bar height
50
+ // windowManager.defaultDisplay.getMetrics doesn't
51
+ when (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
52
+ true -> screenHeight
53
+ false -> screenHeight + navigationBarHeight
54
+ }
55
+ } else {
56
+ screenHeight - statusBarHeight - navigationBarHeight
57
+ }
49
58
  }
50
59
 
51
60
  fun toDIP(value: Int): Float = PixelUtil.toDIPFromPixel(value.toFloat())
@@ -0,0 +1,23 @@
1
+ package com.lodev09.truesheet.events
2
+
3
+ import com.facebook.react.bridge.Arguments
4
+ import com.facebook.react.bridge.WritableMap
5
+ import com.facebook.react.uimanager.events.Event
6
+
7
+ // onContainerSizeChange
8
+ class ContainerSizeChangeEvent(surfaceId: Int, viewId: Int, private val width: Float, private val height: Float) :
9
+ Event<ContainerSizeChangeEvent>(surfaceId, viewId) {
10
+ override fun getEventName() = EVENT_NAME
11
+
12
+ override fun getEventData(): WritableMap {
13
+ val data = Arguments.createMap()
14
+ data.putDouble("width", width.toDouble())
15
+ data.putDouble("height", height.toDouble())
16
+
17
+ return data
18
+ }
19
+
20
+ companion object {
21
+ const val EVENT_NAME = "containerSizeChange"
22
+ }
23
+ }
@@ -9,4 +9,5 @@
9
9
  #import <React/RCTViewManager.h>
10
10
  #import <React/RCTUIManager.h>
11
11
  #import <React/RCTTouchHandler.h>
12
+ #import <React/RCTSurfaceTouchHandler.h>
12
13
  #import <React/RCTScrollView.h>
@@ -16,6 +16,7 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
16
16
  @objc var onDismiss: RCTDirectEventBlock?
17
17
  @objc var onPresent: RCTDirectEventBlock?
18
18
  @objc var onSizeChange: RCTDirectEventBlock?
19
+ @objc var onContainerSizeChange: RCTDirectEventBlock?
19
20
 
20
21
  // MARK: - React Properties
21
22
 
@@ -27,9 +28,12 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
27
28
  private var isPresented = false
28
29
  private var activeIndex: Int?
29
30
  private var bridge: RCTBridge?
30
- private var touchHandler: RCTTouchHandler
31
31
  private var viewController: TrueSheetViewController
32
32
 
33
+ private var touchHandler: RCTTouchHandler
34
+ // New Arch
35
+ private var surfaceTouchHandler: RCTSurfaceTouchHandler
36
+
33
37
  // MARK: - Content properties
34
38
 
35
39
  private var containerView: UIView?
@@ -43,7 +47,7 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
43
47
  // Reference height constraint during content updates
44
48
  private var footerViewHeightConstraint: NSLayoutConstraint?
45
49
 
46
- private var rctScrollView: RCTScrollView?
50
+ private var scrollableTag: NSNumber?
47
51
 
48
52
  private var uiManager: RCTUIManager? {
49
53
  guard let uiManager = bridge?.uiManager else { return nil }
@@ -57,6 +61,7 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
57
61
 
58
62
  viewController = TrueSheetViewController()
59
63
  touchHandler = RCTTouchHandler(bridge: bridge)
64
+ surfaceTouchHandler = RCTSurfaceTouchHandler()
60
65
 
61
66
  super.init(frame: .zero)
62
67
 
@@ -76,10 +81,11 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
76
81
  return
77
82
  }
78
83
 
79
- viewController.view.addSubview(subview)
80
-
81
84
  containerView = subview
82
- touchHandler.attach(to: containerView)
85
+
86
+ viewController.view.addSubview(subview)
87
+ touchHandler.attach(to: subview)
88
+ surfaceTouchHandler.attach(to: subview)
83
89
  }
84
90
 
85
91
  override func removeReactSubview(_ subview: UIView!) {
@@ -91,6 +97,7 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
91
97
  super.removeReactSubview(subview)
92
98
 
93
99
  touchHandler.detach(from: subview)
100
+ surfaceTouchHandler.detach(from: subview)
94
101
 
95
102
  containerView = nil
96
103
  contentView = nil
@@ -110,15 +117,31 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
110
117
 
111
118
  containerView.pinTo(view: viewController.view, constraints: nil)
112
119
 
120
+ if let contentView {
121
+ // Set initial content height
122
+ let contentHeight = contentView.bounds.height
123
+ setContentHeight(NSNumber(value: contentHeight))
124
+ }
125
+
113
126
  // Set footer constraints
114
127
  if let footerView {
115
128
  footerView.pinTo(view: viewController.view, from: [.left, .right, .bottom], with: 0) { constraints in
116
129
  self.footerViewBottomConstraint = constraints.bottom
117
130
  self.footerViewHeightConstraint = constraints.height
118
131
  }
132
+
133
+ // Set initial footer height
134
+ let footerHeight = footerView.bounds.height
135
+ setFooterHeight(NSNumber(value: footerHeight))
119
136
  }
120
137
 
121
- initializeContent()
138
+ // Present sheet at initial index
139
+ let initialIndex = self.initialIndex.intValue
140
+ if initialIndex >= 0 {
141
+ present(at: initialIndex, promise: nil, animated: initialIndexAnimated)
142
+ }
143
+
144
+ onMount?(nil)
122
145
  }
123
146
  }
124
147
 
@@ -145,10 +168,8 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
145
168
  }
146
169
 
147
170
  func viewControllerDidChangeWidth(_ width: CGFloat) {
148
- guard let containerView else { return }
149
-
150
- let size = CGSize(width: width, height: containerView.bounds.height)
151
- uiManager?.setSize(size, for: containerView)
171
+ // We only pass width to JS since height is handled by the constraints
172
+ onContainerSizeChange?(["width": width])
152
173
  }
153
174
 
154
175
  func viewControllerWillAppear() {
@@ -302,37 +323,11 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
302
323
 
303
324
  @objc
304
325
  func setScrollableHandle(_ tag: NSNumber?) {
305
- let view = uiManager?.view(forReactTag: tag) as? RCTScrollView
306
- rctScrollView = view
326
+ scrollableTag = tag
307
327
  }
308
328
 
309
329
  // MARK: - Methods
310
330
 
311
- private func initializeContent() {
312
- guard let contentView, let footerView else {
313
- return
314
- }
315
-
316
- // Update content containers
317
- setupScrollable()
318
-
319
- // Set initial content height
320
- let contentHeight = contentView.bounds.height
321
- setContentHeight(NSNumber(value: contentHeight))
322
-
323
- // Set initial footer height
324
- let footerHeight = footerView.bounds.height
325
- setFooterHeight(NSNumber(value: footerHeight))
326
-
327
- // Present sheet at initial index
328
- let initialIndex = self.initialIndex.intValue
329
- if initialIndex >= 0 {
330
- present(at: initialIndex, promise: nil, animated: initialIndexAnimated)
331
- }
332
-
333
- onMount?(nil)
334
- }
335
-
336
331
  private func sizeInfoData(from sizeInfo: SizeInfo?) -> [String: Any] {
337
332
  guard let sizeInfo else {
338
333
  return ["index": 0, "value": 0.0]
@@ -361,12 +356,16 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
361
356
  }
362
357
 
363
358
  func setupScrollable() {
364
- guard let contentView, let containerView else { return }
359
+ guard let contentView, let containerView, let scrollableTag else {
360
+ return
361
+ }
362
+
363
+ let scrollView = uiManager?.view(forReactTag: scrollableTag)
365
364
 
366
365
  // Add constraints to fix weirdness and support ScrollView
367
- if let rctScrollView {
366
+ if let scrollView {
368
367
  contentView.pinTo(view: containerView, constraints: nil)
369
- rctScrollView.pinTo(view: contentView, constraints: nil)
368
+ scrollView.pinTo(view: contentView, constraints: nil)
370
369
  }
371
370
  }
372
371
 
@@ -27,6 +27,7 @@ RCT_EXPORT_VIEW_PROPERTY(onMount, RCTDirectEventBlock)
27
27
  RCT_EXPORT_VIEW_PROPERTY(onPresent, RCTDirectEventBlock)
28
28
  RCT_EXPORT_VIEW_PROPERTY(onDismiss, RCTDirectEventBlock)
29
29
  RCT_EXPORT_VIEW_PROPERTY(onSizeChange, RCTDirectEventBlock)
30
+ RCT_EXPORT_VIEW_PROPERTY(onContainerSizeChange, RCTDirectEventBlock)
30
31
 
31
32
  // Properties
32
33
  RCT_EXPORT_VIEW_PROPERTY(scrollableHandle, NSNumber)
@@ -24,9 +24,11 @@ class TrueSheetViewManager: RCTViewManager {
24
24
 
25
25
  // MARK: - Private
26
26
 
27
- private func getTrueSheetView(_ tag: NSNumber) -> TrueSheetView {
27
+ private func getTrueSheetView(_ tag: NSNumber) -> TrueSheetView? {
28
+ guard let uiManager = bridge?.uiManager else { return nil }
29
+ guard let viewForTag = uiManager.view(forReactTag: tag) else { return nil }
28
30
  // swiftlint:disable force_cast
29
- return bridge.uiManager.view(forReactTag: tag) as! TrueSheetView
31
+ return viewForTag as! TrueSheetView
30
32
  // swiftlint:enable force_cast
31
33
  }
32
34
 
@@ -35,12 +37,12 @@ class TrueSheetViewManager: RCTViewManager {
35
37
  @objc
36
38
  func present(_ tag: NSNumber, index: Int, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
37
39
  let trueSheetView = getTrueSheetView(tag)
38
- trueSheetView.present(at: index, promise: Promise(resolver: resolve, rejecter: reject))
40
+ trueSheetView?.present(at: index, promise: Promise(resolver: resolve, rejecter: reject))
39
41
  }
40
42
 
41
43
  @objc
42
44
  func dismiss(_ tag: NSNumber, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
43
45
  let trueSheetView = getTrueSheetView(tag)
44
- trueSheetView.dismiss(promise: Promise(resolver: resolve, rejecter: reject))
46
+ trueSheetView?.dismiss(promise: Promise(resolver: resolve, rejecter: reject))
45
47
  }
46
48
  }
@@ -4,14 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.TrueSheet = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = require("react");
8
8
  var _reactNative = require("react-native");
9
- var _TrueSheetModule = require("./TrueSheetModule");
10
- var _TrueSheetGrabber = require("./TrueSheetGrabber");
11
- var _TrueSheetFooter = require("./TrueSheetFooter");
12
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
9
+ var _TrueSheetModule = require("./TrueSheetModule.js");
10
+ var _TrueSheetGrabber = require("./TrueSheetGrabber.js");
11
+ var _TrueSheetFooter = require("./TrueSheetFooter.js");
12
+ var _jsxRuntime = require("react/jsx-runtime");
15
13
  const NATIVE_COMPONENT_NAME = 'TrueSheetView';
16
14
  const LINKING_ERROR = `The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
17
15
  ios: "- You have run 'pod install'\n",
@@ -36,7 +34,10 @@ class TrueSheet extends _react.PureComponent {
36
34
  this.onSizeChange = this.onSizeChange.bind(this);
37
35
  this.onContentLayout = this.onContentLayout.bind(this);
38
36
  this.onFooterLayout = this.onFooterLayout.bind(this);
37
+ this.onContainerSizeChange = this.onContainerSizeChange.bind(this);
39
38
  this.state = {
39
+ containerWidth: undefined,
40
+ containerHeight: undefined,
40
41
  contentHeight: undefined,
41
42
  footerHeight: undefined,
42
43
  scrollableHandle: null
@@ -97,6 +98,12 @@ class TrueSheet extends _react.PureComponent {
97
98
  onSizeChange(event) {
98
99
  this.props.onSizeChange?.(event.nativeEvent);
99
100
  }
101
+ onContainerSizeChange(event) {
102
+ this.setState({
103
+ containerWidth: event.nativeEvent.width,
104
+ containerHeight: event.nativeEvent.height
105
+ });
106
+ }
100
107
  onPresent(event) {
101
108
  this.props.onPresent?.(event.nativeEvent);
102
109
  }
@@ -156,6 +163,7 @@ class TrueSheet extends _react.PureComponent {
156
163
  grabber = true,
157
164
  dimmed = true,
158
165
  initialIndexAnimated = true,
166
+ edgeToEdge = false,
159
167
  keyboardMode = 'resize',
160
168
  initialIndex,
161
169
  dimmedIndex,
@@ -169,7 +177,7 @@ class TrueSheet extends _react.PureComponent {
169
177
  children,
170
178
  ...rest
171
179
  } = this.props;
172
- return /*#__PURE__*/_react.default.createElement(TrueSheetNativeView, {
180
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(TrueSheetNativeView, {
173
181
  ref: this.ref,
174
182
  style: $nativeSheet,
175
183
  scrollableHandle: this.state.scrollableHandle,
@@ -181,6 +189,7 @@ class TrueSheet extends _react.PureComponent {
181
189
  grabber: grabber,
182
190
  dimmed: dimmed,
183
191
  dimmedIndex: dimmedIndex,
192
+ edgeToEdge: edgeToEdge,
184
193
  initialIndex: initialIndex,
185
194
  initialIndexAnimated: initialIndexAnimated,
186
195
  keyboardMode: keyboardMode,
@@ -189,34 +198,45 @@ class TrueSheet extends _react.PureComponent {
189
198
  onMount: this.onMount,
190
199
  onPresent: this.onPresent,
191
200
  onDismiss: this.onDismiss,
192
- onSizeChange: this.onSizeChange
193
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({
194
- collapsable: false,
195
- style: [{
196
- overflow: _reactNative.Platform.select({
197
- ios: undefined,
198
- android: 'hidden'
199
- }),
200
- borderTopLeftRadius: cornerRadius,
201
- borderTopRightRadius: cornerRadius,
202
- // Remove backgroundColor if `blurTint` is set on iOS
203
- backgroundColor: _reactNative.Platform.select({
204
- ios: blurTint ? undefined : backgroundColor,
205
- android: backgroundColor
206
- })
207
- }, style]
208
- }, rest), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
209
- collapsable: false,
210
- onLayout: this.onContentLayout,
211
- style: contentContainerStyle
212
- }, children), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
213
- collapsable: false,
214
- onLayout: this.onFooterLayout
215
- }, /*#__PURE__*/_react.default.createElement(_TrueSheetFooter.TrueSheetFooter, {
216
- Component: FooterComponent
217
- })), _reactNative.Platform.OS === 'android' && /*#__PURE__*/_react.default.createElement(_TrueSheetGrabber.TrueSheetGrabber, _extends({
218
- visible: grabber
219
- }, grabberProps))));
201
+ onSizeChange: this.onSizeChange,
202
+ onContainerSizeChange: this.onContainerSizeChange,
203
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
204
+ collapsable: false,
205
+ style: [{
206
+ overflow: _reactNative.Platform.select({
207
+ ios: undefined,
208
+ android: 'hidden'
209
+ }),
210
+ borderTopLeftRadius: cornerRadius,
211
+ borderTopRightRadius: cornerRadius,
212
+ // Update the width on JS side.
213
+ // New Arch interop does not support updating it in native :/
214
+ width: this.state.containerWidth,
215
+ height: this.state.containerHeight,
216
+ // Remove backgroundColor if `blurTint` is set on iOS
217
+ backgroundColor: _reactNative.Platform.select({
218
+ ios: blurTint ? undefined : backgroundColor,
219
+ android: backgroundColor
220
+ })
221
+ }, style],
222
+ ...rest,
223
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
224
+ collapsable: false,
225
+ onLayout: this.onContentLayout,
226
+ style: contentContainerStyle,
227
+ children: children
228
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
229
+ collapsable: false,
230
+ onLayout: this.onFooterLayout,
231
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TrueSheetFooter.TrueSheetFooter, {
232
+ Component: FooterComponent
233
+ })
234
+ }), _reactNative.Platform.OS === 'android' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_TrueSheetGrabber.TrueSheetGrabber, {
235
+ visible: grabber,
236
+ ...grabberProps
237
+ })]
238
+ })
239
+ });
220
240
  }
221
241
  }
222
242
  exports.TrueSheet = TrueSheet;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_TrueSheetModule","_TrueSheetGrabber","_TrueSheetFooter","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","prototype","apply","NATIVE_COMPONENT_NAME","LINKING_ERROR","Platform","select","ios","TrueSheetNativeView","requireNativeComponent","Error","TrueSheet","PureComponent","displayName","handles","constructor","props","ref","createRef","onMount","onDismiss","onPresent","onSizeChange","onContentLayout","onFooterLayout","state","contentHeight","undefined","footerHeight","scrollableHandle","getHandle","name","handle","console","warn","present","index","TrueSheetModule","dismiss","resize","nodeHandle","findNodeHandle","current","updateState","scrollRef","setState","event","nativeEvent","layout","height","componentDidMount","sizes","componentDidUpdate","render","backgroundColor","dismissible","grabber","dimmed","initialIndexAnimated","keyboardMode","initialIndex","dimmedIndex","grabberProps","blurTint","cornerRadius","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","createElement","$nativeSheet","View","collapsable","overflow","android","borderTopLeftRadius","borderTopRightRadius","onLayout","TrueSheetFooter","Component","OS","TrueSheetGrabber","visible","exports","position","width","left","zIndex"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_TrueSheetModule","_TrueSheetGrabber","_TrueSheetFooter","_jsxRuntime","NATIVE_COMPONENT_NAME","LINKING_ERROR","Platform","select","ios","default","TrueSheetNativeView","requireNativeComponent","Error","TrueSheet","PureComponent","displayName","handles","constructor","props","ref","createRef","onMount","bind","onDismiss","onPresent","onSizeChange","onContentLayout","onFooterLayout","onContainerSizeChange","state","containerWidth","undefined","containerHeight","contentHeight","footerHeight","scrollableHandle","getHandle","name","handle","console","warn","present","index","TrueSheetModule","dismiss","resize","nodeHandle","findNodeHandle","current","updateState","scrollRef","setState","event","nativeEvent","width","height","layout","componentDidMount","sizes","length","componentDidUpdate","render","backgroundColor","dismissible","grabber","dimmed","initialIndexAnimated","edgeToEdge","keyboardMode","initialIndex","dimmedIndex","grabberProps","blurTint","cornerRadius","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","jsx","$nativeSheet","jsxs","View","collapsable","overflow","android","borderTopLeftRadius","borderTopRightRadius","onLayout","TrueSheetFooter","Component","OS","TrueSheetGrabber","visible","exports","position","left","zIndex"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}