@lodev09/react-native-true-sheet 3.5.1-beta.2 → 3.5.1-beta.3

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.
@@ -131,6 +131,7 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
131
131
  // ==================== Lifecycle ====================
132
132
 
133
133
  override fun onHostResume() {
134
+ viewController.reapplyHiddenState()
134
135
  finalizeUpdates()
135
136
  }
136
137
 
@@ -1,7 +1,7 @@
1
1
  package com.lodev09.truesheet
2
2
 
3
3
  import android.annotation.SuppressLint
4
- import android.util.Log
4
+ import android.os.Build
5
5
  import android.view.MotionEvent
6
6
  import android.view.View
7
7
  import android.view.WindowManager
@@ -10,6 +10,7 @@ import android.widget.FrameLayout
10
10
  import androidx.appcompat.app.AppCompatActivity
11
11
  import androidx.core.view.isNotEmpty
12
12
  import androidx.core.view.isVisible
13
+ import androidx.core.view.postDelayed
13
14
  import com.facebook.react.R
14
15
  import com.facebook.react.uimanager.JSPointerDispatcher
15
16
  import com.facebook.react.uimanager.JSTouchDispatcher
@@ -119,7 +120,9 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
119
120
  private var interactionState: InteractionState = InteractionState.Idle
120
121
  private var isDismissing = false
121
122
  private var wasHiddenByModal = false
122
- private var shouldAnimatePresent = true
123
+ private var shouldAnimatePresent = false
124
+ private var wasPresentingWithAnimation = false
125
+ private var isPresentingWithoutAnimation = false
123
126
 
124
127
  private var lastStateWidth: Int = 0
125
128
  private var lastStateHeight: Int = 0
@@ -257,6 +260,9 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
257
260
  return TrueSheetDialogObserver.isTopmostSheet(hostView)
258
261
  }
259
262
 
263
+ private val dimViews: List<TrueSheetDimView>
264
+ get() = listOfNotNull(dimView, parentDimView)
265
+
260
266
  // =============================================================================
261
267
  // MARK: - Initialization
262
268
  // =============================================================================
@@ -273,21 +279,27 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
273
279
  if (dialogFragment != null) return
274
280
 
275
281
  dialogFragment = TrueSheetDialogFragment.newInstance().apply {
276
- this.delegate = this@TrueSheetViewController
277
- this.contentView = this@TrueSheetViewController
278
- this.reactContext = this@TrueSheetViewController.reactContext
279
- this.sheetCornerRadius = this@TrueSheetViewController.sheetCornerRadius
280
- this.sheetBackgroundColor = this@TrueSheetViewController.sheetBackgroundColor
281
- this.edgeToEdgeFullScreen = this@TrueSheetViewController.edgeToEdgeFullScreen
282
- this.grabberEnabled = this@TrueSheetViewController.grabber
283
- this.grabberOptions = this@TrueSheetViewController.grabberOptions
284
- this.dismissible = this@TrueSheetViewController.dismissible
285
- this.draggable = this@TrueSheetViewController.draggable
282
+ delegate = this@TrueSheetViewController
283
+ contentView = this@TrueSheetViewController
284
+ syncFragmentProperties(this)
286
285
  }
287
286
 
288
287
  setupModalObserver()
289
288
  }
290
289
 
290
+ private fun syncFragmentProperties(fragment: TrueSheetDialogFragment) {
291
+ fragment.apply {
292
+ reactContext = this@TrueSheetViewController.reactContext
293
+ sheetCornerRadius = this@TrueSheetViewController.sheetCornerRadius
294
+ sheetBackgroundColor = this@TrueSheetViewController.sheetBackgroundColor
295
+ edgeToEdgeFullScreen = this@TrueSheetViewController.edgeToEdgeFullScreen
296
+ grabberEnabled = this@TrueSheetViewController.grabber
297
+ grabberOptions = this@TrueSheetViewController.grabberOptions
298
+ dismissible = this@TrueSheetViewController.dismissible
299
+ draggable = this@TrueSheetViewController.draggable
300
+ }
301
+ }
302
+
291
303
  private fun cleanupDialog() {
292
304
  cleanupKeyboardObserver()
293
305
  cleanupModalObserver()
@@ -312,6 +324,13 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
312
324
  // MARK: - TrueSheetDialogFragmentDelegate
313
325
  // =============================================================================
314
326
 
327
+ override fun onDialogCreated() {
328
+ bottomSheetView?.visibility = INVISIBLE
329
+
330
+ // Ensure sheet starts off-screen to prevent flicker
331
+ bottomSheetView?.y = realScreenHeight.toFloat()
332
+ }
333
+
315
334
  override fun onDialogShow() {
316
335
  bottomSheetView?.visibility = VISIBLE
317
336
 
@@ -325,21 +344,26 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
325
344
  setupKeyboardObserver()
326
345
 
327
346
  if (shouldAnimatePresent) {
328
- val toTop = getExpectedSheetTop(currentDetentIndex)
329
- sheetAnimator.animatePresent(
330
- toTop = toTop,
331
- onUpdate = { effectiveTop ->
332
- emitChangePositionDelegate(effectiveTop)
333
- positionFooter()
334
- updateDimAmount(effectiveTop)
335
- },
336
- onEnd = { finishPresent() }
337
- )
347
+ wasPresentingWithAnimation = true
348
+ post {
349
+ val toTop = getExpectedSheetTop(currentDetentIndex)
350
+ sheetAnimator.animatePresent(
351
+ toTop = toTop,
352
+ onUpdate = { effectiveTop -> updateSheetVisuals(effectiveTop) },
353
+ onStart = { wasPresentingWithAnimation = false },
354
+ onEnd = { finishPresent() }
355
+ )
356
+ }
338
357
  } else {
339
- val toTop = getExpectedSheetTop(currentDetentIndex)
340
- emitChangePositionDelegate(toTop)
341
- positionFooter()
342
- finishPresent()
358
+ isPresentingWithoutAnimation = true
359
+
360
+ post {
361
+ val toTop = getExpectedSheetTop(currentDetentIndex)
362
+ bottomSheetView?.y = toTop.toFloat()
363
+
364
+ updateSheetVisuals(toTop)
365
+ finishPresent()
366
+ }
343
367
  }
344
368
  }
345
369
 
@@ -378,6 +402,18 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
378
402
  // Skip if our custom animator is handling the animation
379
403
  if (sheetAnimator.isAnimating) return
380
404
 
405
+ // Keep it off screen to prevent flicker
406
+ if (wasPresentingWithAnimation) {
407
+ sheetView.y = realScreenHeight.toFloat()
408
+ return
409
+ }
410
+
411
+ // When presenting without animation, keep the sheet at the target position
412
+ if (isPresentingWithoutAnimation) {
413
+ sheetView.y = getExpectedSheetTop(currentDetentIndex).toFloat()
414
+ return
415
+ }
416
+
381
417
  val behavior = behavior ?: return
382
418
 
383
419
  when (behavior.state) {
@@ -389,21 +425,37 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
389
425
 
390
426
  emitChangePositionDelegate(sheetView.top)
391
427
 
392
- if (!isKeyboardTransitioning) {
428
+ // On older APIs, use onSlide for footer positioning during keyboard transitions
429
+ val useLegacyKeyboardHandling = Build.VERSION.SDK_INT < Build.VERSION_CODES.R
430
+ if (!isKeyboardTransitioning || useLegacyKeyboardHandling) {
393
431
  positionFooter(slideOffset)
432
+ }
433
+
434
+ if (!isKeyboardTransitioning) {
394
435
  updateDimAmount(sheetView.top)
395
436
  }
396
437
  }
397
438
 
398
439
  override fun onBackPressed() {
399
440
  delegate?.viewControllerDidBackPress()
441
+ if (dismissible) {
442
+ dismiss(animated = true)
443
+ }
400
444
  }
401
445
 
402
446
  private fun handleStateSettled(sheetView: View, newState: Int) {
403
447
  if (interactionState is InteractionState.Reconfiguring) return
404
448
 
449
+ // Reset non-animated presentation flag once behavior has settled at the target
450
+ if (isPresentingWithoutAnimation) {
451
+ val targetTop = getExpectedSheetTop(currentDetentIndex)
452
+ sheetView.y = targetTop.toFloat()
453
+
454
+ isPresentingWithoutAnimation = false
455
+ }
456
+
405
457
  val index = detentCalculator.getDetentIndexForState(newState) ?: return
406
- val position = detentCalculator.getPositionDp(detentCalculator.getVisibleSheetHeight(sheetView.top))
458
+ val position = getPositionDpForView(sheetView)
407
459
  val detentInfo = DetentInfo(index, position)
408
460
 
409
461
  when (interactionState) {
@@ -474,13 +526,11 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
474
526
  wasHiddenByModal = true
475
527
 
476
528
  // Prepare for fast fade out
477
- dimView?.alpha = 0f
478
- parentDimView?.alpha = 0f
529
+ dimViews.forEach { it.alpha = 0f }
479
530
 
480
531
  dialog?.window?.setWindowAnimations(com.lodev09.truesheet.R.style.TrueSheetFastFadeOut)
481
532
  dialog?.window?.decorView?.visibility = GONE
482
- dimView?.visibility = INVISIBLE
483
- parentDimView?.visibility = INVISIBLE
533
+ dimViews.forEach { it.visibility = INVISIBLE }
484
534
 
485
535
  parentSheetView?.viewController?.hideForModal()
486
536
  }
@@ -490,12 +540,22 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
490
540
 
491
541
  dialog?.window?.setWindowAnimations(0)
492
542
  dialog?.window?.decorView?.visibility = VISIBLE
493
- dimView?.visibility = VISIBLE
494
- parentDimView?.visibility = VISIBLE
543
+ dimViews.forEach { it.visibility = VISIBLE }
495
544
 
496
545
  updateDimAmount(animated = true)
497
546
  }
498
547
 
548
+ /**
549
+ * Re-applies hidden state after returning from background.
550
+ * Android may restore dialog visibility on activity resume, so we need to hide it again.
551
+ */
552
+ fun reapplyHiddenState() {
553
+ if (!wasHiddenByModal) return
554
+
555
+ dialog?.window?.decorView?.visibility = GONE
556
+ dimViews.forEach { it.visibility = INVISIBLE }
557
+ }
558
+
499
559
  // =============================================================================
500
560
  // MARK: - Presentation
501
561
  // =============================================================================
@@ -526,7 +586,6 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
526
586
 
527
587
  // Execute pending transactions to ensure fragment is added
528
588
  activity.supportFragmentManager.executePendingTransactions()
529
- bottomSheetView?.visibility = INVISIBLE
530
589
  }
531
590
  }
532
591
 
@@ -538,11 +597,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
538
597
 
539
598
  if (animated) {
540
599
  sheetAnimator.animateDismiss(
541
- onUpdate = { effectiveTop ->
542
- emitChangePositionDelegate(effectiveTop)
543
- positionFooter()
544
- updateDimAmount(effectiveTop)
545
- },
600
+ onUpdate = { effectiveTop -> updateSheetVisuals(effectiveTop) },
546
601
  onEnd = { dialogFragment?.dismiss() }
547
602
  )
548
603
  } else {
@@ -629,26 +684,20 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
629
684
  }
630
685
 
631
686
  // =============================================================================
632
- // MARK: - Grabber
687
+ // MARK: - Grabber & Background
633
688
  // =============================================================================
634
689
 
635
690
  fun setupGrabber() {
636
- dialogFragment?.apply {
637
- grabberEnabled = this@TrueSheetViewController.grabber
638
- grabberOptions = this@TrueSheetViewController.grabberOptions
639
- setupGrabber()
691
+ dialogFragment?.let {
692
+ syncFragmentProperties(it)
693
+ it.setupGrabber()
640
694
  }
641
695
  }
642
696
 
643
- // =============================================================================
644
- // MARK: - Background & Dimming
645
- // =============================================================================
646
-
647
697
  fun setupBackground() {
648
- dialogFragment?.apply {
649
- sheetCornerRadius = this@TrueSheetViewController.sheetCornerRadius
650
- sheetBackgroundColor = this@TrueSheetViewController.sheetBackgroundColor
651
- setupBackground()
698
+ dialogFragment?.let {
699
+ syncFragmentProperties(it)
700
+ it.setupBackground()
652
701
  }
653
702
  }
654
703
 
@@ -713,11 +762,9 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
713
762
  dimmedDetentIndex,
714
763
  detentCalculator::getSheetTopForDetentIndex
715
764
  ) ?: 0f
716
- dimView?.animate()?.alpha(targetAlpha)?.setDuration(200)?.start()
717
- parentDimView?.animate()?.alpha(targetAlpha)?.setDuration(200)?.start()
765
+ dimViews.forEach { it.animate().alpha(targetAlpha).setDuration(200).start() }
718
766
  } else {
719
- dimView?.interpolateAlpha(top, dimmedDetentIndex, detentCalculator::getSheetTopForDetentIndex)
720
- parentDimView?.interpolateAlpha(top, dimmedDetentIndex, detentCalculator::getSheetTopForDetentIndex)
767
+ dimViews.forEach { it.interpolateAlpha(top, dimmedDetentIndex, detentCalculator::getSheetTopForDetentIndex) }
721
768
  }
722
769
  }
723
770
 
@@ -757,6 +804,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
757
804
 
758
805
  fun setupKeyboardObserver() {
759
806
  val bottomSheet = bottomSheetView ?: return
807
+ cleanupKeyboardObserver()
760
808
  keyboardObserver = TrueSheetKeyboardObserver(bottomSheet, reactContext).apply {
761
809
  delegate = object : TrueSheetKeyboardObserverDelegate {
762
810
  override fun keyboardWillShow(height: Int) {
@@ -799,8 +847,11 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
799
847
  // MARK: - Drag Handling
800
848
  // =============================================================================
801
849
 
850
+ private fun getPositionDpForView(sheetView: View): Float =
851
+ detentCalculator.getPositionDp(detentCalculator.getVisibleSheetHeight(sheetView.top))
852
+
802
853
  private fun handleDragBegin(sheetView: View) {
803
- val position = detentCalculator.getPositionDp(detentCalculator.getVisibleSheetHeight(sheetView.top))
854
+ val position = getPositionDpForView(sheetView)
804
855
  val detent = detentCalculator.getDetentValueForIndex(currentDetentIndex)
805
856
  delegate?.viewControllerDidDragBegin(currentDetentIndex, position, detent)
806
857
  interactionState = InteractionState.Dragging(startTop = sheetView.top)
@@ -808,7 +859,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
808
859
 
809
860
  private fun handleDragChange(sheetView: View) {
810
861
  if (interactionState !is InteractionState.Dragging) return
811
- val position = detentCalculator.getPositionDp(detentCalculator.getVisibleSheetHeight(sheetView.top))
862
+ val position = getPositionDpForView(sheetView)
812
863
  val detent = detentCalculator.getDetentValueForIndex(currentDetentIndex)
813
864
  delegate?.viewControllerDidDragChange(currentDetentIndex, position, detent)
814
865
  }
@@ -854,6 +905,16 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
854
905
  delegate?.viewControllerDidChangePosition(interpolatedIndex, position, detent, realtime)
855
906
  }
856
907
 
908
+ /**
909
+ * Updates position emission, footer, and dim amount together.
910
+ * This pattern is commonly used during animations and state changes.
911
+ */
912
+ private fun updateSheetVisuals(effectiveTop: Int, slideOffset: Float? = null) {
913
+ emitChangePositionDelegate(effectiveTop)
914
+ positionFooter(slideOffset)
915
+ updateDimAmount(effectiveTop)
916
+ }
917
+
857
918
  // =============================================================================
858
919
  // MARK: - Detent Helpers
859
920
  // =============================================================================
@@ -4,6 +4,8 @@ import android.content.Context
4
4
  import androidx.appcompat.app.AppCompatActivity
5
5
  import androidx.fragment.app.Fragment
6
6
  import androidx.fragment.app.FragmentManager
7
+ import androidx.lifecycle.DefaultLifecycleObserver
8
+ import androidx.lifecycle.LifecycleOwner
7
9
  import com.facebook.react.bridge.ReactContext
8
10
 
9
11
  private const val RN_SCREENS_PACKAGE = "com.swmansion.rnscreens"
@@ -19,7 +21,9 @@ class RNScreensFragmentObserver(
19
21
  private val onModalDidDismiss: () -> Unit
20
22
  ) {
21
23
  private var fragmentLifecycleCallback: FragmentManager.FragmentLifecycleCallbacks? = null
24
+ private var activityLifecycleObserver: DefaultLifecycleObserver? = null
22
25
  private val activeModalFragments: MutableSet<Fragment> = mutableSetOf()
26
+ private var isActivityInForeground = true
23
27
 
24
28
  /**
25
29
  * Start observing fragment lifecycle events.
@@ -28,10 +32,25 @@ class RNScreensFragmentObserver(
28
32
  val activity = reactContext.currentActivity as? AppCompatActivity ?: return
29
33
  val fragmentManager = activity.supportFragmentManager
30
34
 
35
+ // Track activity foreground state to ignore fragment lifecycle events during background/foreground transitions
36
+ activityLifecycleObserver = object : DefaultLifecycleObserver {
37
+ override fun onResume(owner: LifecycleOwner) {
38
+ isActivityInForeground = true
39
+ }
40
+
41
+ override fun onPause(owner: LifecycleOwner) {
42
+ isActivityInForeground = false
43
+ }
44
+ }
45
+ activity.lifecycle.addObserver(activityLifecycleObserver!!)
46
+
31
47
  fragmentLifecycleCallback = object : FragmentManager.FragmentLifecycleCallbacks() {
32
48
  override fun onFragmentAttached(fm: FragmentManager, f: Fragment, context: Context) {
33
49
  super.onFragmentAttached(fm, f, context)
34
50
 
51
+ // Ignore if app is resuming from background
52
+ if (!isActivityInForeground) return
53
+
35
54
  if (isModalFragment(f) && !activeModalFragments.contains(f)) {
36
55
  activeModalFragments.add(f)
37
56
 
@@ -44,11 +63,8 @@ class RNScreensFragmentObserver(
44
63
  override fun onFragmentStopped(fm: FragmentManager, f: Fragment) {
45
64
  super.onFragmentStopped(fm, f)
46
65
 
47
- // Ignore if app is in background (fragments stop with activity)
48
- val activity = reactContext.currentActivity as? AppCompatActivity ?: return
49
- if (!activity.lifecycle.currentState.isAtLeast(androidx.lifecycle.Lifecycle.State.RESUMED)) {
50
- return
51
- }
66
+ // Ignore if app is going to background (fragments stop with activity)
67
+ if (!isActivityInForeground) return
52
68
 
53
69
  if (activeModalFragments.contains(f)) {
54
70
  if (activeModalFragments.size == 1) {
@@ -77,11 +93,18 @@ class RNScreensFragmentObserver(
77
93
  * Stop observing and cleanup.
78
94
  */
79
95
  fun stop() {
96
+ val activity = reactContext.currentActivity as? AppCompatActivity
97
+
80
98
  fragmentLifecycleCallback?.let { callback ->
81
- val activity = reactContext.currentActivity as? AppCompatActivity
82
99
  activity?.supportFragmentManager?.unregisterFragmentLifecycleCallbacks(callback)
83
100
  }
84
101
  fragmentLifecycleCallback = null
102
+
103
+ activityLifecycleObserver?.let { observer ->
104
+ activity?.lifecycle?.removeObserver(observer)
105
+ }
106
+ activityLifecycleObserver = null
107
+
85
108
  activeModalFragments.clear()
86
109
  }
87
110
 
@@ -4,6 +4,7 @@ import android.animation.Animator
4
4
  import android.animation.AnimatorListenerAdapter
5
5
  import android.animation.ValueAnimator
6
6
  import android.util.Log
7
+ import android.view.View
7
8
  import android.view.animation.AccelerateInterpolator
8
9
  import android.view.animation.DecelerateInterpolator
9
10
  import android.widget.FrameLayout
@@ -38,7 +39,7 @@ class TrueSheetAnimator(private val provider: TrueSheetAnimatorProvider) {
38
39
  * @param onUpdate Called on each animation frame with the effective top position
39
40
  * @param onEnd Called when animation completes or is cancelled
40
41
  */
41
- fun animatePresent(toTop: Int, onUpdate: (effectiveTop: Int) -> Unit, onEnd: () -> Unit) {
42
+ fun animatePresent(toTop: Int, onStart: () -> Unit, onUpdate: (effectiveTop: Int) -> Unit, onEnd: () -> Unit) {
42
43
  val bottomSheet = provider.bottomSheetView ?: run {
43
44
  onEnd()
44
45
  return
@@ -54,20 +55,19 @@ class TrueSheetAnimator(private val provider: TrueSheetAnimatorProvider) {
54
55
 
55
56
  addUpdateListener { animator ->
56
57
  val fraction = animator.animatedValue as Float
57
- // Calculate effective top based on animation progress
58
58
  val effectiveTop = fromTop - (distance * fraction).toInt()
59
- // Adjust translationY to compensate for bottomSheet.top position
60
- bottomSheet.translationY = (effectiveTop - bottomSheet.top).toFloat()
59
+ bottomSheet.y = effectiveTop.toFloat()
61
60
  onUpdate(effectiveTop)
62
61
  }
63
62
 
64
63
  addListener(object : AnimatorListenerAdapter() {
65
64
  override fun onAnimationStart(animation: Animator) {
65
+ onStart()
66
66
  isAnimating = true
67
67
  }
68
68
 
69
69
  override fun onAnimationEnd(animation: Animator) {
70
- bottomSheet.translationY = 0f
70
+ bottomSheet.y = toTop.toFloat()
71
71
  presentAnimator = null
72
72
  isAnimating = false
73
73
  onEnd()
@@ -95,8 +95,8 @@ class TrueSheetAnimator(private val provider: TrueSheetAnimatorProvider) {
95
95
  return
96
96
  }
97
97
 
98
- val fromTop = bottomSheet.top + bottomSheet.translationY.toInt()
99
- val toY = (provider.realScreenHeight - fromTop).toFloat()
98
+ val fromTop = bottomSheet.y.toInt()
99
+ val toTop = provider.realScreenHeight
100
100
 
101
101
  dismissAnimator?.cancel()
102
102
  dismissAnimator = ValueAnimator.ofFloat(0f, 1f).apply {
@@ -105,9 +105,8 @@ class TrueSheetAnimator(private val provider: TrueSheetAnimatorProvider) {
105
105
 
106
106
  addUpdateListener { animator ->
107
107
  val fraction = animator.animatedValue as Float
108
- bottomSheet.translationY = toY * fraction
109
-
110
- val effectiveTop = bottomSheet.top + bottomSheet.translationY.toInt()
108
+ val effectiveTop = fromTop + ((toTop - fromTop) * fraction).toInt()
109
+ bottomSheet.y = effectiveTop.toFloat()
111
110
  onUpdate(effectiveTop)
112
111
  }
113
112
 
@@ -5,6 +5,7 @@ import android.graphics.Color
5
5
  import android.graphics.drawable.ShapeDrawable
6
6
  import android.graphics.drawable.shapes.RoundRectShape
7
7
  import android.os.Bundle
8
+ import android.util.Log
8
9
  import android.util.TypedValue
9
10
  import android.view.LayoutInflater
10
11
  import android.view.View
@@ -26,6 +27,7 @@ import com.lodev09.truesheet.utils.ScreenUtils
26
27
  // =============================================================================
27
28
 
28
29
  interface TrueSheetDialogFragmentDelegate {
30
+ fun onDialogCreated()
29
31
  fun onDialogShow()
30
32
  fun onDialogDismiss()
31
33
  fun onDialogCancel()
@@ -122,13 +124,6 @@ class TrueSheetDialogFragment : BottomSheetDialogFragment() {
122
124
  // MARK: - Lifecycle
123
125
  // =============================================================================
124
126
 
125
- override fun onCreate(savedInstanceState: Bundle?) {
126
- super.onCreate(savedInstanceState)
127
- // Prevent dialog from being recreated on configuration change
128
- // The controller manages state separately
129
- retainInstance = true
130
- }
131
-
132
127
  override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
133
128
  val ctx = reactContext ?: requireContext()
134
129
 
@@ -153,6 +148,7 @@ class TrueSheetDialogFragment : BottomSheetDialogFragment() {
153
148
  setupGrabber()
154
149
  // Re-apply dismissible after show since behavior may reset it
155
150
  dialog.behavior.isHideable = dismissible
151
+
156
152
  delegate?.onDialogShow()
157
153
  }
158
154
 
@@ -162,15 +158,12 @@ class TrueSheetDialogFragment : BottomSheetDialogFragment() {
162
158
  dialog.behavior.isDraggable = draggable
163
159
  dialog.behavior.maxWidth = DEFAULT_MAX_WIDTH.dpToPx().toInt()
164
160
 
165
- // Handle back press
161
+ // Handle back press - delegate to controller for animated dismiss
166
162
  dialog.onBackPressedDispatcher.addCallback(
167
163
  this,
168
164
  object : OnBackPressedCallback(true) {
169
165
  override fun handleOnBackPressed() {
170
166
  delegate?.onBackPressed()
171
- if (dismissible) {
172
- dismiss()
173
- }
174
167
  }
175
168
  }
176
169
  )
@@ -180,6 +173,10 @@ class TrueSheetDialogFragment : BottomSheetDialogFragment() {
180
173
 
181
174
  override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? = contentView
182
175
 
176
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
177
+ delegate?.onDialogCreated()
178
+ }
179
+
183
180
  override fun onCancel(dialog: android.content.DialogInterface) {
184
181
  super.onCancel(dialog)
185
182
  delegate?.onDialogCancel()
@@ -111,6 +111,9 @@ class TrueSheetKeyboardObserver(private val targetView: View, private val reactC
111
111
  }
112
112
 
113
113
  private fun setupLegacyListener() {
114
+ // Ensure we don't add duplicate listeners
115
+ if (globalLayoutListener != null) return
116
+
114
117
  val rootView = reactContext.currentActivity?.window?.decorView?.rootView ?: return
115
118
  activityRootView = rootView
116
119
 
@@ -122,19 +125,26 @@ class TrueSheetKeyboardObserver(private val targetView: View, private val reactC
122
125
  val keyboardHeight = screenHeight - rect.bottom
123
126
 
124
127
  val newHeight = if (keyboardHeight > screenHeight * 0.15) keyboardHeight else 0
128
+
129
+ // Skip if already at this height
130
+ if (targetHeight == newHeight) return@OnGlobalLayoutListener
131
+
125
132
  val previousHeight = currentHeight
133
+ targetHeight = newHeight
134
+ isHiding = newHeight < previousHeight
126
135
 
127
- if (previousHeight != newHeight) {
128
- targetHeight = newHeight
129
- if (newHeight > previousHeight) {
130
- delegate?.keyboardWillShow(newHeight)
131
- } else if (newHeight < previousHeight) {
132
- delegate?.keyboardWillHide()
133
- }
134
- updateHeight(previousHeight, newHeight, 1f)
135
- if (newHeight == 0 && previousHeight > 0) {
136
- delegate?.keyboardDidHide()
137
- }
136
+ if (newHeight > previousHeight) {
137
+ delegate?.keyboardWillShow(newHeight)
138
+ } else if (isHiding) {
139
+ delegate?.keyboardWillHide()
140
+ }
141
+
142
+ // On legacy API, keyboard has already animated - just update immediately
143
+ updateHeight(previousHeight, newHeight, 1f)
144
+
145
+ if (isHiding && newHeight == 0) {
146
+ delegate?.keyboardDidHide()
147
+ isHiding = false
138
148
  }
139
149
  }
140
150
 
@@ -7,15 +7,12 @@ 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, StyleSheet, findNodeHandle, View, processColor } from 'react-native';
10
+ import { Platform, StyleSheet, findNodeHandle, processColor } 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",
14
14
  default: ''
15
15
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n' + '- You are using the new architecture (Fabric)\n';
16
-
17
- // Material Design 3 minimum touch target
18
- const ANDROID_HITBOX_HEIGHT = 48;
19
16
  if (!TrueSheetModule) {
20
17
  throw new Error(LINKING_ERROR);
21
18
  }
@@ -344,9 +341,6 @@ export class TrueSheet extends PureComponent {
344
341
  }), footer && /*#__PURE__*/_jsx(TrueSheetFooterViewNativeComponent, {
345
342
  style: styles.footer,
346
343
  children: /*#__PURE__*/isValidElement(footer) ? footer : /*#__PURE__*/createElement(footer)
347
- }), Platform.OS === 'android' && grabber && draggable && /*#__PURE__*/_jsx(View, {
348
- collapsable: false,
349
- style: styles.grabberHitbox
350
344
  })]
351
345
  })
352
346
  });
@@ -379,13 +373,6 @@ const styles = StyleSheet.create({
379
373
  position: 'absolute',
380
374
  left: 0,
381
375
  right: 0
382
- },
383
- grabberHitbox: {
384
- position: 'absolute',
385
- top: 0,
386
- left: 0,
387
- right: 0,
388
- height: ANDROID_HITBOX_HEIGHT
389
376
  }
390
377
  });
391
378
  //# sourceMappingURL=TrueSheet.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","StyleSheet","findNodeHandle","View","processColor","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","ANDROID_HITBOX_HEIGHT","Error","TrueSheet","displayName","instances","presentationResolver","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","onBackPress","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","animated","dismiss","resize","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","draggable","grabber","grabberOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","blurTint","blurOptions","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","insetAdjustment","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableAndroidContent","ref","sheetView","color","OS","collapsable","grabberHitbox","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis","height"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"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","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","onBackPress","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","animated","dismiss","resize","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","draggable","grabber","grabberOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","blurTint","blurOptions","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","insetAdjustment","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableAndroidContent","ref","sheetView","color","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","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,EACd,YAAY,EAgBb,MAAM,mBAAmB,CAAC;AA2B3B,UAAU,cAAc;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,SACX,SAAQ,aAAa,CAAC,cAAc,EAAE,cAAc,CACpD,YAAW,YAAY;IAEvB,WAAW,SAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAEtE;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAA6B;gBAE7C,KAAK,EAAE,cAAc;IAgCjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;;;OAOG;WACiB,OAAO,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAU,EACjB,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;OAMG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASlF;;;;;;OAMG;WACiB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAIN,OAAO,CAAC,KAAK,GAAE,MAAU,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,OAAO,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;CAoHpB"}
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,EACd,YAAY,EAgBb,MAAM,mBAAmB,CAAC;AAwB3B,UAAU,cAAc;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,SACX,SAAQ,aAAa,CAAC,cAAc,EAAE,cAAc,CACpD,YAAW,YAAY;IAEvB,WAAW,SAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAEtE;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAA6B;gBAE7C,KAAK,EAAE,cAAc;IAgCjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;;;OAOG;WACiB,OAAO,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAU,EACjB,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;OAMG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASlF;;;;;;OAMG;WACiB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAIN,OAAO,CAAC,KAAK,GAAE,MAAU,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,OAAO,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;CAiHpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodev09/react-native-true-sheet",
3
- "version": "3.5.1-beta.2",
3
+ "version": "3.5.1-beta.3",
4
4
  "description": "The true native bottom sheet experience for your React Native Apps.",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./lib/module/index.js",
package/src/TrueSheet.tsx CHANGED
@@ -35,7 +35,7 @@ import TrueSheetFooterViewNativeComponent from './fabric/TrueSheetFooterViewNati
35
35
 
36
36
  import TrueSheetModule from './specs/NativeTrueSheetModule';
37
37
 
38
- import { Platform, StyleSheet, findNodeHandle, View, processColor } from 'react-native';
38
+ import { Platform, StyleSheet, findNodeHandle, processColor } from 'react-native';
39
39
 
40
40
  const LINKING_ERROR =
41
41
  `The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` +
@@ -44,9 +44,6 @@ const LINKING_ERROR =
44
44
  '- You are not using Expo Go\n' +
45
45
  '- You are using the new architecture (Fabric)\n';
46
46
 
47
- // Material Design 3 minimum touch target
48
- const ANDROID_HITBOX_HEIGHT = 48;
49
-
50
47
  if (!TrueSheetModule) {
51
48
  throw new Error(LINKING_ERROR);
52
49
  }
@@ -448,9 +445,6 @@ export class TrueSheet
448
445
  {isValidElement(footer) ? footer : createElement(footer)}
449
446
  </TrueSheetFooterViewNativeComponent>
450
447
  )}
451
- {Platform.OS === 'android' && grabber && draggable && (
452
- <View collapsable={false} style={styles.grabberHitbox} />
453
- )}
454
448
  </TrueSheetContainerViewNativeComponent>
455
449
  )}
456
450
  </TrueSheetViewNativeComponent>
@@ -485,11 +479,4 @@ const styles = StyleSheet.create({
485
479
  left: 0,
486
480
  right: 0,
487
481
  },
488
- grabberHitbox: {
489
- position: 'absolute',
490
- top: 0,
491
- left: 0,
492
- right: 0,
493
- height: ANDROID_HITBOX_HEIGHT,
494
- },
495
482
  });