react-native-screens 4.5.0 → 4.6.0-beta.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.
- package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +31 -10
- package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderSubviewViewGroup.kt +51 -0
- package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +12 -2
- package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +0 -26
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubview.kt +12 -7
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +13 -0
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +9 -1
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderSubviewViewGroup.kt +18 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigComponentDescriptor.h +12 -2
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.cpp +12 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.h +4 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.cpp +4 -10
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.h +15 -9
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h +20 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.cpp +14 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.h +2 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.cpp +3 -1
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.h +16 -2
- package/ios/RNSScreenStack.mm +11 -7
- package/ios/RNSScreenStackHeaderConfig.h +21 -7
- package/ios/RNSScreenStackHeaderConfig.mm +74 -15
- package/ios/RNSScreenStackHeaderSubview.h +4 -0
- package/ios/RNSScreenStackHeaderSubview.mm +26 -1
- package/lib/commonjs/components/ScreenStackHeaderConfig.js +0 -1
- package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -1
- package/lib/commonjs/gesture-handler/ScreenGestureDetector.js +12 -0
- package/lib/commonjs/gesture-handler/ScreenGestureDetector.js.map +1 -1
- package/lib/commonjs/gesture-handler/defaults.js +1 -2
- package/lib/commonjs/gesture-handler/defaults.js.map +1 -1
- package/lib/module/components/ScreenStackHeaderConfig.js +0 -1
- package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -1
- package/lib/module/gesture-handler/ScreenGestureDetector.js +12 -0
- package/lib/module/gesture-handler/ScreenGestureDetector.js.map +1 -1
- package/lib/module/gesture-handler/defaults.js +1 -2
- package/lib/module/gesture-handler/defaults.js.map +1 -1
- package/lib/typescript/gesture-handler/ScreenGestureDetector.d.ts.map +1 -1
- package/lib/typescript/gesture-handler/defaults.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/components/ScreenStackHeaderConfig.tsx +0 -1
- package/src/gesture-handler/ScreenGestureDetector.tsx +14 -2
- package/src/gesture-handler/defaults.ts +0 -1
package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt
CHANGED
|
@@ -14,6 +14,8 @@ abstract class FabricEnabledHeaderConfigViewGroup(
|
|
|
14
14
|
) : ViewGroup(context) {
|
|
15
15
|
private var mStateWrapper: StateWrapper? = null
|
|
16
16
|
|
|
17
|
+
private var lastWidth = 0f
|
|
18
|
+
private var lastHeight = 0f
|
|
17
19
|
private var lastPaddingStart = 0f
|
|
18
20
|
private var lastPaddingEnd = 0f
|
|
19
21
|
|
|
@@ -21,36 +23,55 @@ abstract class FabricEnabledHeaderConfigViewGroup(
|
|
|
21
23
|
mStateWrapper = wrapper
|
|
22
24
|
}
|
|
23
25
|
|
|
24
|
-
fun
|
|
26
|
+
fun updatePaddings(
|
|
25
27
|
paddingStart: Int,
|
|
26
28
|
paddingEnd: Int,
|
|
27
29
|
) {
|
|
28
|
-
|
|
30
|
+
// Do nothing on Fabric. This method is used only on Paper.
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
fun updateHeaderConfigState(
|
|
34
|
+
width: Int,
|
|
35
|
+
height: Int,
|
|
36
|
+
paddingStart: Int,
|
|
37
|
+
paddingEnd: Int,
|
|
38
|
+
) {
|
|
39
|
+
updateState(width, height, paddingStart, paddingEnd)
|
|
29
40
|
}
|
|
30
41
|
|
|
31
42
|
@UiThread
|
|
32
43
|
fun updateState(
|
|
44
|
+
width: Int,
|
|
45
|
+
height: Int,
|
|
33
46
|
paddingStart: Int,
|
|
34
47
|
paddingEnd: Int,
|
|
35
48
|
) {
|
|
36
|
-
val
|
|
37
|
-
val
|
|
49
|
+
val realWidth: Float = PixelUtil.toDIPFromPixel(width.toFloat())
|
|
50
|
+
val realHeight: Float = PixelUtil.toDIPFromPixel(height.toFloat())
|
|
51
|
+
val realPaddingStart: Float = PixelUtil.toDIPFromPixel(paddingStart.toFloat())
|
|
52
|
+
val realPaddingEnd: Float = PixelUtil.toDIPFromPixel(paddingEnd.toFloat())
|
|
38
53
|
|
|
39
54
|
// Check incoming state values. If they're already the correct value, return early to prevent
|
|
40
55
|
// infinite UpdateState/SetState loop.
|
|
41
|
-
if (abs(
|
|
42
|
-
abs(
|
|
56
|
+
if (abs(lastWidth - realWidth) < DELTA &&
|
|
57
|
+
abs(lastHeight - realHeight) < DELTA &&
|
|
58
|
+
abs(lastPaddingStart - realPaddingStart) < DELTA &&
|
|
59
|
+
abs(lastPaddingEnd - realPaddingEnd) < DELTA
|
|
43
60
|
) {
|
|
44
61
|
return
|
|
45
62
|
}
|
|
46
63
|
|
|
47
|
-
|
|
48
|
-
|
|
64
|
+
lastWidth = realWidth
|
|
65
|
+
lastHeight = realHeight
|
|
66
|
+
lastPaddingStart = realPaddingStart
|
|
67
|
+
lastPaddingEnd = realPaddingEnd
|
|
49
68
|
|
|
50
69
|
val map: WritableMap =
|
|
51
70
|
WritableNativeMap().apply {
|
|
52
|
-
putDouble("
|
|
53
|
-
putDouble("
|
|
71
|
+
putDouble("frameWidth", realWidth.toDouble())
|
|
72
|
+
putDouble("frameHeight", realHeight.toDouble())
|
|
73
|
+
putDouble("paddingStart", realPaddingStart.toDouble())
|
|
74
|
+
putDouble("paddingEnd", realPaddingEnd.toDouble())
|
|
54
75
|
}
|
|
55
76
|
mStateWrapper?.updateState(map)
|
|
56
77
|
}
|
package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderSubviewViewGroup.kt
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
package com.swmansion.rnscreens
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.view.ViewGroup
|
|
5
|
+
import androidx.annotation.UiThread
|
|
6
|
+
import com.facebook.react.bridge.WritableMap
|
|
7
|
+
import com.facebook.react.bridge.WritableNativeMap
|
|
8
|
+
import com.facebook.react.uimanager.PixelUtil
|
|
9
|
+
import com.facebook.react.uimanager.StateWrapper
|
|
10
|
+
|
|
11
|
+
abstract class FabricEnabledHeaderSubviewViewGroup(
|
|
12
|
+
context: Context?,
|
|
13
|
+
) : ViewGroup(context) {
|
|
14
|
+
private var mStateWrapper: StateWrapper? = null
|
|
15
|
+
|
|
16
|
+
fun setStateWrapper(wrapper: StateWrapper?) {
|
|
17
|
+
mStateWrapper = wrapper
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
protected fun updateSubviewFrameState(
|
|
21
|
+
width: Int,
|
|
22
|
+
height: Int,
|
|
23
|
+
offsetX: Int,
|
|
24
|
+
offsetY: Int,
|
|
25
|
+
) {
|
|
26
|
+
updateState(width, height, offsetX, offsetY)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@UiThread
|
|
30
|
+
fun updateState(
|
|
31
|
+
width: Int,
|
|
32
|
+
height: Int,
|
|
33
|
+
offsetX: Int,
|
|
34
|
+
offsetY: Int,
|
|
35
|
+
) {
|
|
36
|
+
val realWidth: Float = PixelUtil.toDIPFromPixel(width.toFloat())
|
|
37
|
+
val realHeight: Float = PixelUtil.toDIPFromPixel(height.toFloat())
|
|
38
|
+
val offsetXDip: Float = PixelUtil.toDIPFromPixel(offsetX.toFloat())
|
|
39
|
+
val offsetYDip: Float = PixelUtil.toDIPFromPixel(offsetY.toFloat())
|
|
40
|
+
|
|
41
|
+
val map: WritableMap =
|
|
42
|
+
WritableNativeMap().apply {
|
|
43
|
+
putDouble("frameWidth", realWidth.toDouble())
|
|
44
|
+
putDouble("frameHeight", realHeight.toDouble())
|
|
45
|
+
putDouble("contentOffsetX", offsetXDip.toDouble())
|
|
46
|
+
putDouble("contentOffsetY", offsetYDip.toDouble())
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
mStateWrapper?.updateState(map)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -68,8 +68,18 @@ open class CustomToolbar(
|
|
|
68
68
|
) {
|
|
69
69
|
super.onLayout(changed, l, t, r, b)
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
if (!changed) {
|
|
72
|
+
return
|
|
73
|
+
}
|
|
74
|
+
|
|
72
75
|
val contentInsetStart = if (navigationIcon != null) contentInsetStartWithNavigation else contentInsetStart
|
|
73
|
-
|
|
76
|
+
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
|
77
|
+
val width = r - l;
|
|
78
|
+
val height = b - t;
|
|
79
|
+
config.updateHeaderConfigState(width, height, contentInsetStart, contentInsetEnd)
|
|
80
|
+
} else {
|
|
81
|
+
// our children are already laid out
|
|
82
|
+
config.updatePaddings(contentInsetStart, contentInsetEnd)
|
|
83
|
+
}
|
|
74
84
|
}
|
|
75
85
|
}
|
|
@@ -17,12 +17,9 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
|
|
17
17
|
import com.facebook.react.bridge.GuardedRunnable
|
|
18
18
|
import com.facebook.react.bridge.ReactContext
|
|
19
19
|
import com.facebook.react.uimanager.PixelUtil
|
|
20
|
-
import com.facebook.react.uimanager.ReactClippingViewGroup
|
|
21
20
|
import com.facebook.react.uimanager.UIManagerHelper
|
|
22
21
|
import com.facebook.react.uimanager.UIManagerModule
|
|
23
22
|
import com.facebook.react.uimanager.events.EventDispatcher
|
|
24
|
-
import com.facebook.react.views.scroll.ReactHorizontalScrollView
|
|
25
|
-
import com.facebook.react.views.scroll.ReactScrollView
|
|
26
23
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
|
27
24
|
import com.google.android.material.shape.CornerFamily
|
|
28
25
|
import com.google.android.material.shape.MaterialShapeDrawable
|
|
@@ -404,29 +401,6 @@ class Screen(
|
|
|
404
401
|
}
|
|
405
402
|
|
|
406
403
|
if (child is ViewGroup) {
|
|
407
|
-
// The children are miscounted when there's removeClippedSubviews prop
|
|
408
|
-
// set to true (which is the default for FlatLists).
|
|
409
|
-
// Unless the child is a ScrollView it's safe to assume that it's true
|
|
410
|
-
// and add a simple view for each possibly clipped item to make it work as expected.
|
|
411
|
-
// See https://github.com/software-mansion/react-native-screens/pull/2495
|
|
412
|
-
|
|
413
|
-
if (child is ReactClippingViewGroup &&
|
|
414
|
-
child.removeClippedSubviews &&
|
|
415
|
-
child !is ReactScrollView &&
|
|
416
|
-
child !is ReactHorizontalScrollView
|
|
417
|
-
) {
|
|
418
|
-
// We need to workaround the issue until our changes land in core.
|
|
419
|
-
// Some views do not accept any children or have set amount and they throw
|
|
420
|
-
// when we want to brute-forcefully manipulate that.
|
|
421
|
-
// Is this ugly? Very. Do we have better option before changes land in core?
|
|
422
|
-
// I'm not aware of any.
|
|
423
|
-
try {
|
|
424
|
-
for (j in 0 until child.childCount) {
|
|
425
|
-
child.addView(View(context))
|
|
426
|
-
}
|
|
427
|
-
} catch (_: Exception) {
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
404
|
startTransitionRecursive(child)
|
|
431
405
|
}
|
|
432
406
|
}
|
|
@@ -3,12 +3,11 @@ package com.swmansion.rnscreens
|
|
|
3
3
|
import android.annotation.SuppressLint
|
|
4
4
|
import android.view.View
|
|
5
5
|
import com.facebook.react.bridge.ReactContext
|
|
6
|
-
import com.facebook.react.views.view.ReactViewGroup
|
|
7
6
|
|
|
8
7
|
@SuppressLint("ViewConstructor")
|
|
9
8
|
class ScreenStackHeaderSubview(
|
|
10
9
|
context: ReactContext?,
|
|
11
|
-
) :
|
|
10
|
+
) : FabricEnabledHeaderSubviewViewGroup(context) {
|
|
12
11
|
private var reactWidth = 0
|
|
13
12
|
private var reactHeight = 0
|
|
14
13
|
var type = Type.RIGHT
|
|
@@ -37,11 +36,17 @@ class ScreenStackHeaderSubview(
|
|
|
37
36
|
|
|
38
37
|
override fun onLayout(
|
|
39
38
|
changed: Boolean,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
)
|
|
39
|
+
l: Int,
|
|
40
|
+
t: Int,
|
|
41
|
+
r: Int,
|
|
42
|
+
b: Int,
|
|
43
|
+
) {
|
|
44
|
+
if (changed && BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
|
45
|
+
val width = r - l
|
|
46
|
+
val height = b - t
|
|
47
|
+
updateSubviewFrameState(width, height, l, t)
|
|
48
|
+
}
|
|
49
|
+
}
|
|
45
50
|
|
|
46
51
|
enum class Type {
|
|
47
52
|
LEFT,
|
|
@@ -2,6 +2,8 @@ package com.swmansion.rnscreens
|
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.JSApplicationIllegalArgumentException
|
|
4
4
|
import com.facebook.react.module.annotations.ReactModule
|
|
5
|
+
import com.facebook.react.uimanager.ReactStylesDiffMap
|
|
6
|
+
import com.facebook.react.uimanager.StateWrapper
|
|
5
7
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
6
8
|
import com.facebook.react.uimanager.ViewGroupManager
|
|
7
9
|
import com.facebook.react.uimanager.ViewManagerDelegate
|
|
@@ -39,6 +41,17 @@ class ScreenStackHeaderSubviewManager :
|
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
|
|
44
|
+
override fun updateState(
|
|
45
|
+
view: ScreenStackHeaderSubview,
|
|
46
|
+
props: ReactStylesDiffMap?,
|
|
47
|
+
stateWrapper: StateWrapper?
|
|
48
|
+
): Any? {
|
|
49
|
+
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
|
50
|
+
view.setStateWrapper(stateWrapper)
|
|
51
|
+
}
|
|
52
|
+
return super.updateState(view, props, stateWrapper)
|
|
53
|
+
}
|
|
54
|
+
|
|
42
55
|
protected override fun getDelegate(): ViewManagerDelegate<ScreenStackHeaderSubview> = delegate
|
|
43
56
|
|
|
44
57
|
companion object {
|
package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt
CHANGED
|
@@ -16,7 +16,15 @@ abstract class FabricEnabledHeaderConfigViewGroup(
|
|
|
16
16
|
|
|
17
17
|
fun setStateWrapper(wrapper: StateWrapper?) = Unit
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
// Do nothing on Paper. This method is used only on Fabric.
|
|
20
|
+
fun updateHeaderConfigState(
|
|
21
|
+
width: Int,
|
|
22
|
+
height: Int,
|
|
23
|
+
paddingStart: Int,
|
|
24
|
+
paddingEnd: Int,
|
|
25
|
+
) = Unit
|
|
26
|
+
|
|
27
|
+
fun updatePaddings(
|
|
20
28
|
paddingStart: Int,
|
|
21
29
|
paddingEnd: Int,
|
|
22
30
|
) {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
package com.swmansion.rnscreens
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.view.ViewGroup
|
|
5
|
+
import com.facebook.react.uimanager.StateWrapper
|
|
6
|
+
|
|
7
|
+
abstract class FabricEnabledHeaderSubviewViewGroup(context: Context?): ViewGroup(context) {
|
|
8
|
+
|
|
9
|
+
fun setStateWrapper(wrapper: StateWrapper?) = Unit
|
|
10
|
+
|
|
11
|
+
// Fabric only
|
|
12
|
+
protected fun updateSubviewFrameState(
|
|
13
|
+
width: Int,
|
|
14
|
+
height: Int,
|
|
15
|
+
offsetX: Int,
|
|
16
|
+
offsetY: Int
|
|
17
|
+
) = Unit
|
|
18
|
+
}
|
|
@@ -34,8 +34,18 @@ class RNSScreenStackHeaderConfigComponentDescriptor final
|
|
|
34
34
|
shadowNode.getState());
|
|
35
35
|
auto stateData = state->getData();
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
if (stateData.frameSize.width != 0 && stateData.frameSize.height != 0) {
|
|
38
|
+
layoutableShadowNode.setSize(
|
|
39
|
+
{stateData.frameSize.width, stateData.frameSize.height});
|
|
40
|
+
#ifdef ANDROID
|
|
41
|
+
layoutableShadowNode.setPadding({
|
|
42
|
+
stateData.paddingStart,
|
|
43
|
+
0,
|
|
44
|
+
stateData.paddingEnd,
|
|
45
|
+
0,
|
|
46
|
+
});
|
|
47
|
+
#endif // ANDROID
|
|
48
|
+
}
|
|
39
49
|
|
|
40
50
|
ConcreteComponentDescriptor::adopt(shadowNode);
|
|
41
51
|
#if !defined(ANDROID) && !defined(NDEBUG)
|
package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.cpp
CHANGED
|
@@ -5,6 +5,18 @@ namespace facebook::react {
|
|
|
5
5
|
extern const char RNSScreenStackHeaderConfigComponentName[] =
|
|
6
6
|
"RNSScreenStackHeaderConfig";
|
|
7
7
|
|
|
8
|
+
void RNSScreenStackHeaderConfigShadowNode::layout(LayoutContext layoutContext) {
|
|
9
|
+
YogaLayoutableShadowNode::layout(layoutContext);
|
|
10
|
+
applyFrameCorrections();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
void RNSScreenStackHeaderConfigShadowNode::applyFrameCorrections() {
|
|
14
|
+
ensureUnsealed();
|
|
15
|
+
|
|
16
|
+
const auto &stateData = getStateData();
|
|
17
|
+
layoutMetrics_.frame.origin.y = -stateData.frameSize.height;
|
|
18
|
+
}
|
|
19
|
+
|
|
8
20
|
#if !defined(ANDROID) && !defined(NDEBUG)
|
|
9
21
|
void RNSScreenStackHeaderConfigShadowNode::setImageLoader(
|
|
10
22
|
std::weak_ptr<void> imageLoader) {
|
package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.h
CHANGED
|
@@ -25,13 +25,17 @@ class JSI_EXPORT RNSScreenStackHeaderConfigShadowNode final
|
|
|
25
25
|
using StateData = ConcreteViewShadowNode::ConcreteStateData;
|
|
26
26
|
|
|
27
27
|
#pragma mark - ShadowNode overrides
|
|
28
|
+
void layout(LayoutContext layoutContext) override;
|
|
28
29
|
|
|
29
30
|
#pragma mark - Custom interface
|
|
31
|
+
|
|
30
32
|
#if !defined(ANDROID) && !defined(NDEBUG)
|
|
31
33
|
void setImageLoader(std::weak_ptr<void> imageLoader);
|
|
32
34
|
#endif // !ANDROID && !NDEBUG
|
|
33
35
|
|
|
34
36
|
private:
|
|
37
|
+
void applyFrameCorrections();
|
|
38
|
+
|
|
35
39
|
#if !defined(ANDROID) && !defined(NDEBUG)
|
|
36
40
|
StateData &getStateDataMutable();
|
|
37
41
|
#endif // !ANDROID && !NDEBUG
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
#include "RNSScreenStackHeaderConfigState.h"
|
|
2
3
|
|
|
3
4
|
namespace facebook {
|
|
@@ -5,8 +6,9 @@ namespace react {
|
|
|
5
6
|
|
|
6
7
|
#ifdef ANDROID
|
|
7
8
|
folly::dynamic RNSScreenStackHeaderConfigState::getDynamic() const {
|
|
8
|
-
return folly::dynamic::object("
|
|
9
|
-
"
|
|
9
|
+
return folly::dynamic::object("frameWidth", frameSize.width)(
|
|
10
|
+
"frameHeight", frameSize.height)("paddingStart", paddingStart)(
|
|
11
|
+
"paddingEnd", paddingEnd);
|
|
10
12
|
}
|
|
11
13
|
#else // ANDROID
|
|
12
14
|
#ifndef NDEBUG
|
|
@@ -22,13 +24,5 @@ std::weak_ptr<void> RNSScreenStackHeaderConfigState::getImageLoader()
|
|
|
22
24
|
#endif // !NDEBUG
|
|
23
25
|
#endif // ANDROID
|
|
24
26
|
|
|
25
|
-
Float RNSScreenStackHeaderConfigState::getPaddingStart() const noexcept {
|
|
26
|
-
return paddingStart_;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
Float RNSScreenStackHeaderConfigState::getPaddingEnd() const noexcept {
|
|
30
|
-
return paddingEnd_;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
27
|
} // namespace react
|
|
34
28
|
} // namespace facebook
|
|
@@ -17,15 +17,20 @@ class JSI_EXPORT RNSScreenStackHeaderConfigState final {
|
|
|
17
17
|
|
|
18
18
|
RNSScreenStackHeaderConfigState() = default;
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
// Used in iOS code
|
|
21
|
+
RNSScreenStackHeaderConfigState(Size frameSize_) : frameSize{frameSize_} {}
|
|
22
22
|
|
|
23
23
|
#ifdef ANDROID
|
|
24
24
|
RNSScreenStackHeaderConfigState(
|
|
25
25
|
RNSScreenStackHeaderConfigState const &previousState,
|
|
26
26
|
folly::dynamic data)
|
|
27
|
-
:
|
|
28
|
-
|
|
27
|
+
: frameSize{
|
|
28
|
+
static_cast<Float>(data["frameWidth"].getDouble()),
|
|
29
|
+
static_cast<Float>(data["frameHeight"].getDouble())
|
|
30
|
+
},
|
|
31
|
+
paddingStart{static_cast<Float>(data["paddingStart"].getDouble())},
|
|
32
|
+
paddingEnd{static_cast<Float>(data["paddingEnd"].getDouble())}
|
|
33
|
+
{}
|
|
29
34
|
#endif
|
|
30
35
|
|
|
31
36
|
#ifdef ANDROID
|
|
@@ -40,15 +45,16 @@ class JSI_EXPORT RNSScreenStackHeaderConfigState final {
|
|
|
40
45
|
#endif // !NDEBUG
|
|
41
46
|
#endif // ANDROID
|
|
42
47
|
|
|
43
|
-
|
|
48
|
+
const Size frameSize{};
|
|
44
49
|
|
|
45
|
-
|
|
50
|
+
#ifdef ANDROID
|
|
51
|
+
Float paddingStart{0.f};
|
|
52
|
+
Float paddingEnd{0.f};
|
|
53
|
+
#endif // ANDROID
|
|
46
54
|
|
|
47
|
-
|
|
55
|
+
#pragma mark - Getters
|
|
48
56
|
|
|
49
57
|
private:
|
|
50
|
-
Float paddingStart_{0.f};
|
|
51
|
-
Float paddingEnd_{0.f};
|
|
52
58
|
#if !defined(ANDROID) && !defined(NDEBUG)
|
|
53
59
|
std::weak_ptr<void> imageLoader_;
|
|
54
60
|
#endif // !ANDROID && !NDEBUG
|
|
@@ -20,6 +20,26 @@ class RNSScreenStackHeaderSubviewComponentDescriptor final
|
|
|
20
20
|
using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
|
|
21
21
|
|
|
22
22
|
void adopt(ShadowNode &shadowNode) const override {
|
|
23
|
+
react_native_assert(
|
|
24
|
+
dynamic_cast<RNSScreenStackHeaderSubviewShadowNode *>(&shadowNode));
|
|
25
|
+
auto &subviewShadowNode =
|
|
26
|
+
static_cast<RNSScreenStackHeaderSubviewShadowNode &>(shadowNode);
|
|
27
|
+
|
|
28
|
+
react_native_assert(
|
|
29
|
+
dynamic_cast<YogaLayoutableShadowNode *>(&subviewShadowNode));
|
|
30
|
+
auto &layoutableShadowNode =
|
|
31
|
+
dynamic_cast<YogaLayoutableShadowNode &>(subviewShadowNode);
|
|
32
|
+
|
|
33
|
+
auto state = std::static_pointer_cast<
|
|
34
|
+
const RNSScreenStackHeaderSubviewShadowNode::ConcreteState>(
|
|
35
|
+
shadowNode.getState());
|
|
36
|
+
auto stateData = state->getData();
|
|
37
|
+
|
|
38
|
+
if (stateData.frameSize.width != 0 && stateData.frameSize.height != 0) {
|
|
39
|
+
layoutableShadowNode.setSize(
|
|
40
|
+
Size{stateData.frameSize.width, stateData.frameSize.height});
|
|
41
|
+
}
|
|
42
|
+
|
|
23
43
|
ConcreteComponentDescriptor::adopt(shadowNode);
|
|
24
44
|
}
|
|
25
45
|
};
|
package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.cpp
CHANGED
|
@@ -5,4 +5,18 @@ namespace facebook::react {
|
|
|
5
5
|
extern const char RNSScreenStackHeaderSubviewComponentName[] =
|
|
6
6
|
"RNSScreenStackHeaderSubview";
|
|
7
7
|
|
|
8
|
+
void RNSScreenStackHeaderSubviewShadowNode::layout(
|
|
9
|
+
LayoutContext layoutContext) {
|
|
10
|
+
YogaLayoutableShadowNode::layout(layoutContext);
|
|
11
|
+
applyFrameCorrections();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
void RNSScreenStackHeaderSubviewShadowNode::applyFrameCorrections() {
|
|
15
|
+
ensureUnsealed();
|
|
16
|
+
|
|
17
|
+
const auto &stateData = getStateData();
|
|
18
|
+
layoutMetrics_.frame.origin.x = stateData.contentOffset.x;
|
|
19
|
+
layoutMetrics_.frame.origin.y = stateData.contentOffset.y;
|
|
20
|
+
}
|
|
21
|
+
|
|
8
22
|
} // namespace facebook::react
|
package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.h
CHANGED
|
@@ -24,8 +24,10 @@ class JSI_EXPORT RNSScreenStackHeaderSubviewShadowNode final
|
|
|
24
24
|
using ConcreteViewShadowNode::ConcreteViewShadowNode;
|
|
25
25
|
using StateData = ConcreteViewShadowNode::ConcreteStateData;
|
|
26
26
|
#pragma mark - ShadowNode overrides
|
|
27
|
+
void layout(LayoutContext layoutContext) override;
|
|
27
28
|
|
|
28
29
|
#pragma mark - Custom interface
|
|
30
|
+
void applyFrameCorrections();
|
|
29
31
|
};
|
|
30
32
|
|
|
31
33
|
} // namespace facebook::react
|
|
@@ -7,7 +7,9 @@ using namespace rnscreens;
|
|
|
7
7
|
|
|
8
8
|
#ifdef ANDROID
|
|
9
9
|
folly::dynamic RNSScreenStackHeaderSubviewState::getDynamic() const {
|
|
10
|
-
return folly::dynamic::object()
|
|
10
|
+
return folly::dynamic::object("frameWidth", frameSize.width)(
|
|
11
|
+
"frameHeight", frameSize.height)("contentOffsetX", contentOffset.x)(
|
|
12
|
+
"contentOffsetY", contentOffset.y);
|
|
11
13
|
}
|
|
12
14
|
#endif // ANDROID
|
|
13
15
|
|
|
@@ -21,18 +21,32 @@ class JSI_EXPORT RNSScreenStackHeaderSubviewState final {
|
|
|
21
21
|
|
|
22
22
|
RNSScreenStackHeaderSubviewState() = default;
|
|
23
23
|
|
|
24
|
+
RNSScreenStackHeaderSubviewState(Size frameSize_, Point contentOffset_)
|
|
25
|
+
: frameSize(frameSize_), contentOffset(contentOffset_){};
|
|
26
|
+
|
|
24
27
|
#ifdef ANDROID
|
|
25
28
|
RNSScreenStackHeaderSubviewState(
|
|
26
29
|
RNSScreenStackHeaderSubviewState const &previousState,
|
|
27
|
-
folly::dynamic data)
|
|
28
|
-
|
|
30
|
+
folly::dynamic data)
|
|
31
|
+
: frameSize(Size{
|
|
32
|
+
(Float)data["frameWidth"].getDouble(),
|
|
33
|
+
(Float)data["frameHeight"].getDouble()}),
|
|
34
|
+
contentOffset(Point{
|
|
35
|
+
(Float)data["contentOffsetX"].getDouble(),
|
|
36
|
+
(Float)data["contentOffsetY"].getDouble()}) {}
|
|
37
|
+
#endif // ANDROID
|
|
29
38
|
|
|
30
39
|
#ifdef ANDROID
|
|
31
40
|
folly::dynamic getDynamic() const;
|
|
32
41
|
MapBuffer getMapBuffer() const {
|
|
33
42
|
return MapBufferBuilder::EMPTY();
|
|
34
43
|
};
|
|
44
|
+
|
|
35
45
|
#endif // ANDROID
|
|
46
|
+
|
|
47
|
+
const Size frameSize{};
|
|
48
|
+
Point contentOffset{};
|
|
49
|
+
|
|
36
50
|
#pragma mark - Getters
|
|
37
51
|
};
|
|
38
52
|
|
package/ios/RNSScreenStack.mm
CHANGED
|
@@ -86,7 +86,7 @@ namespace react = facebook::react;
|
|
|
86
86
|
[screenController calculateAndNotifyHeaderHeightChangeIsModal:NO];
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
[self
|
|
89
|
+
[self maybeUpdateHeaderLayoutInfoInShadowTree:screenController];
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -100,7 +100,7 @@ namespace react = facebook::react;
|
|
|
100
100
|
return [self topViewController];
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
- (void)
|
|
103
|
+
- (void)maybeUpdateHeaderLayoutInfoInShadowTree:(RNSScreen *)screenController
|
|
104
104
|
{
|
|
105
105
|
// This might happen e.g. if there is only native title present in navigation bar.
|
|
106
106
|
if (self.navigationBar.subviews.count < 2) {
|
|
@@ -112,6 +112,9 @@ namespace react = facebook::react;
|
|
|
112
112
|
return;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
116
|
+
[headerConfig updateHeaderStateInShadowTreeInContextOfNavigationBar:self.navigationBar];
|
|
117
|
+
#else
|
|
115
118
|
NSDirectionalEdgeInsets navBarMargins = [self.navigationBar directionalLayoutMargins];
|
|
116
119
|
NSDirectionalEdgeInsets navBarContentMargins =
|
|
117
120
|
[self.navigationBar.rnscreens_findContentView directionalLayoutMargins];
|
|
@@ -122,11 +125,12 @@ namespace react = facebook::react;
|
|
|
122
125
|
UIView *barButtonView = isDisplayingBackButton ? self.navigationBar.rnscreens_findBackButtonWrapperView : nil;
|
|
123
126
|
CGFloat platformBackButtonWidth = barButtonView != nil ? barButtonView.frame.size.width : 44.0f;
|
|
124
127
|
|
|
125
|
-
[headerConfig
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
[headerConfig updateHeaderConfigState:NSDirectionalEdgeInsets{
|
|
129
|
+
.leading = navBarMargins.leading + navBarContentMargins.leading +
|
|
130
|
+
(isDisplayingBackButton ? platformBackButtonWidth : 0),
|
|
131
|
+
.trailing = navBarMargins.trailing + navBarContentMargins.trailing,
|
|
132
|
+
}];
|
|
133
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
130
134
|
}
|
|
131
135
|
#endif
|
|
132
136
|
|
|
@@ -66,12 +66,6 @@ NS_ASSUME_NONNULL_END
|
|
|
66
66
|
animated:(BOOL)animated
|
|
67
67
|
withConfig:(nonnull RNSScreenStackHeaderConfig *)config;
|
|
68
68
|
|
|
69
|
-
/**
|
|
70
|
-
* Allows to send information with insets to the corresponding node in shadow tree.
|
|
71
|
-
* Currently only horizontal insets are send through. Vertical ones are filtered out.
|
|
72
|
-
*/
|
|
73
|
-
- (void)updateHeaderInsetsInShadowTreeTo:(NSDirectionalEdgeInsets)insets;
|
|
74
|
-
|
|
75
69
|
/**
|
|
76
70
|
* Returns true iff subview of given `type` is present.
|
|
77
71
|
*
|
|
@@ -99,11 +93,31 @@ NS_ASSUME_NONNULL_END
|
|
|
99
93
|
- (BOOL)shouldHeaderBeVisible;
|
|
100
94
|
|
|
101
95
|
/**
|
|
102
|
-
*
|
|
96
|
+
* Returns `true` iff the applying this header config instance to a view controller will
|
|
103
97
|
* result in visible back button if feasible.
|
|
104
98
|
*/
|
|
105
99
|
- (BOOL)shouldBackButtonBeVisibleInNavigationBar:(nullable UINavigationBar *)navBar;
|
|
106
100
|
|
|
101
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
102
|
+
/**
|
|
103
|
+
* Allows to send information with size to the corresponding node in shadow tree.
|
|
104
|
+
* This method updates state of header config shadow node only.
|
|
105
|
+
*/
|
|
106
|
+
- (void)updateHeaderConfigState:(CGSize)size;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Updates state of header config shadow node and all subview shadow nodes in context of given UINavigationBar.
|
|
110
|
+
* When `navBar == nil` this method does nothing.
|
|
111
|
+
*/
|
|
112
|
+
- (void)updateHeaderStateInShadowTreeInContextOfNavigationBar:(nullable UINavigationBar *)navBar;
|
|
113
|
+
#else
|
|
114
|
+
/**
|
|
115
|
+
* Allows to send information with insets to the corresponding node in shadow tree.
|
|
116
|
+
* Currently only horizontal insets are send through. Vertical ones are filtered out.
|
|
117
|
+
*/
|
|
118
|
+
- (void)updateHeaderConfigState:(NSDirectionalEdgeInsets)insets;
|
|
119
|
+
#endif
|
|
120
|
+
|
|
107
121
|
@end
|
|
108
122
|
|
|
109
123
|
@interface RNSScreenStackHeaderConfigManager : RCTViewManager
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
#import <React/RCTConversions.h>
|
|
3
3
|
#import <React/RCTFabricComponentsPlugins.h>
|
|
4
4
|
#import <React/RCTImageComponentView.h>
|
|
5
|
+
#import <React/RCTMountingTransactionObserving.h>
|
|
5
6
|
#import <React/UIView+React.h>
|
|
6
7
|
#import <react/renderer/components/image/ImageProps.h>
|
|
7
8
|
#import <react/renderer/components/rnscreens/ComponentDescriptors.h>
|
|
@@ -58,16 +59,26 @@ namespace react = facebook::react;
|
|
|
58
59
|
|
|
59
60
|
@end
|
|
60
61
|
|
|
62
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
63
|
+
@interface RNSScreenStackHeaderConfig () <RCTMountingTransactionObserving>
|
|
64
|
+
@end
|
|
65
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
66
|
+
|
|
61
67
|
@implementation RNSScreenStackHeaderConfig {
|
|
62
68
|
NSMutableArray<RNSScreenStackHeaderSubview *> *_reactSubviews;
|
|
63
|
-
NSDirectionalEdgeInsets _lastHeaderInsets;
|
|
64
69
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
65
70
|
BOOL _initialPropsSet;
|
|
71
|
+
CGSize _lastSize;
|
|
66
72
|
react::RNSScreenStackHeaderConfigShadowNode::ConcreteState::Shared _state;
|
|
73
|
+
|
|
74
|
+
/// Whether a react subview has been added / removed in current transaction. This flag is reset after each react
|
|
75
|
+
/// transaction via RCTMountingTransactionObserving protocol.
|
|
76
|
+
bool _addedReactSubviewsInCurrentTransaction;
|
|
67
77
|
#ifndef NDEBUG
|
|
68
78
|
RCTImageLoader *imageLoader;
|
|
69
79
|
#endif // !NDEBUG
|
|
70
80
|
#else
|
|
81
|
+
NSDirectionalEdgeInsets _lastHeaderInsets;
|
|
71
82
|
__weak RCTBridge *_bridge;
|
|
72
83
|
#endif
|
|
73
84
|
}
|
|
@@ -87,6 +98,7 @@ namespace react = facebook::react;
|
|
|
87
98
|
_props = defaultProps;
|
|
88
99
|
_show = YES;
|
|
89
100
|
_translucent = NO;
|
|
101
|
+
_addedReactSubviewsInCurrentTransaction = false;
|
|
90
102
|
[self initProps];
|
|
91
103
|
}
|
|
92
104
|
return self;
|
|
@@ -145,15 +157,18 @@ RNS_IGNORE_SUPER_CALL_END
|
|
|
145
157
|
for (RNSScreenStackHeaderSubview *subview in _reactSubviews) {
|
|
146
158
|
if (subview.type == RNSScreenStackHeaderSubviewTypeLeft || subview.type == RNSScreenStackHeaderSubviewTypeRight) {
|
|
147
159
|
// we wrap the headerLeft/Right component in a UIBarButtonItem
|
|
148
|
-
// so we need to
|
|
149
|
-
UIView *headerComponent =
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
160
|
+
// so we need to hit test subviews from left to right, because of the view flattening
|
|
161
|
+
UIView *headerComponent = nil;
|
|
162
|
+
for (UIView *headerComponentSubview in subview.subviews) {
|
|
163
|
+
CGPoint convertedPoint = [self convertPoint:point toView:headerComponentSubview];
|
|
164
|
+
UIView *hitTestResult = [headerComponentSubview hitTest:convertedPoint withEvent:event];
|
|
165
|
+
|
|
166
|
+
if (hitTestResult != nil) {
|
|
167
|
+
headerComponent = hitTestResult;
|
|
168
|
+
}
|
|
156
169
|
}
|
|
170
|
+
|
|
171
|
+
return headerComponent;
|
|
157
172
|
}
|
|
158
173
|
}
|
|
159
174
|
return nil;
|
|
@@ -195,19 +210,37 @@ RNS_IGNORE_SUPER_CALL_END
|
|
|
195
210
|
[navctr.view setNeedsLayout];
|
|
196
211
|
}
|
|
197
212
|
|
|
198
|
-
- (void)updateHeaderInsetsInShadowTreeTo:(NSDirectionalEdgeInsets)insets
|
|
199
|
-
{
|
|
200
|
-
if (_lastHeaderInsets.leading != insets.leading || _lastHeaderInsets.trailing != insets.trailing) {
|
|
201
213
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
202
|
-
|
|
214
|
+
- (void)updateHeaderConfigState:(CGSize)size
|
|
215
|
+
{
|
|
216
|
+
if (!CGSizeEqualToSize(size, _lastSize)) {
|
|
217
|
+
auto newState = react::RNSScreenStackHeaderConfigState(RCTSizeFromCGSize(size));
|
|
203
218
|
_state->updateState(std::move(newState));
|
|
204
|
-
|
|
219
|
+
_lastSize = size;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
- (void)updateHeaderStateInShadowTreeInContextOfNavigationBar:(nullable UINavigationBar *)navigationBar
|
|
224
|
+
{
|
|
225
|
+
if (!navigationBar) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
[self updateHeaderConfigState:navigationBar.frame.size];
|
|
230
|
+
for (RNSScreenStackHeaderSubview *subview in self.reactSubviews) {
|
|
231
|
+
CGRect frameInNavBarCoordinates = [subview convertRect:subview.frame toView:navigationBar];
|
|
232
|
+
[subview updateHeaderSubviewFrameInShadowTree:frameInNavBarCoordinates];
|
|
233
|
+
}
|
|
234
|
+
}
|
|
205
235
|
#else
|
|
236
|
+
- (void)updateHeaderConfigState:(NSDirectionalEdgeInsets)insets
|
|
237
|
+
{
|
|
238
|
+
if (_lastHeaderInsets.leading != insets.leading || _lastHeaderInsets.trailing != insets.trailing) {
|
|
206
239
|
[_bridge.uiManager setLocalData:[[RNSHeaderConfigInsetsPayload alloc] initWithInsets:insets] forView:self];
|
|
207
240
|
_lastHeaderInsets = std::move(insets);
|
|
208
|
-
#endif // RCT_NEW_ARCH_ENABLED
|
|
209
241
|
}
|
|
210
242
|
}
|
|
243
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
211
244
|
|
|
212
245
|
- (BOOL)hasSubviewOfType:(RNSScreenStackHeaderSubviewType)type
|
|
213
246
|
{
|
|
@@ -849,6 +882,8 @@ RNS_IGNORE_SUPER_CALL_BEGIN
|
|
|
849
882
|
// [_reactSubviews insertObject:(RNSScreenStackHeaderSubview *)childComponentView atIndex:index];
|
|
850
883
|
[self insertReactSubview:(RNSScreenStackHeaderSubview *)childComponentView atIndex:index];
|
|
851
884
|
|
|
885
|
+
_addedReactSubviewsInCurrentTransaction = true;
|
|
886
|
+
|
|
852
887
|
// TODO: This could be called only once per transaction.
|
|
853
888
|
[self updateViewControllerIfNeeded];
|
|
854
889
|
}
|
|
@@ -856,18 +891,37 @@ RNS_IGNORE_SUPER_CALL_BEGIN
|
|
|
856
891
|
- (void)unmountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
|
|
857
892
|
{
|
|
858
893
|
BOOL isGoingToBeRemoved = _screenView.isMarkedForUnmountInCurrentTransaction;
|
|
894
|
+
|
|
859
895
|
if (isGoingToBeRemoved) {
|
|
860
896
|
// For explanation of why we can make a snapshot here despite the fact that our children are already
|
|
861
897
|
// unmounted see https://github.com/software-mansion/react-native-screens/pull/2261
|
|
862
898
|
[self replaceNavigationBarViewsWithSnapshotOfSubview:(RNSScreenStackHeaderSubview *)childComponentView];
|
|
863
899
|
}
|
|
900
|
+
|
|
864
901
|
[_reactSubviews removeObject:(RNSScreenStackHeaderSubview *)childComponentView];
|
|
865
902
|
[childComponentView removeFromSuperview];
|
|
903
|
+
|
|
866
904
|
if (!isGoingToBeRemoved) {
|
|
867
905
|
[self updateViewControllerIfNeeded];
|
|
868
906
|
}
|
|
869
907
|
}
|
|
870
908
|
|
|
909
|
+
- (void)mountingTransactionDidMount:(const facebook::react::MountingTransaction &)transaction
|
|
910
|
+
withSurfaceTelemetry:(const facebook::react::SurfaceTelemetry &)surfaceTelemetry
|
|
911
|
+
{
|
|
912
|
+
if (_addedReactSubviewsInCurrentTransaction && self.shouldHeaderBeVisible) {
|
|
913
|
+
// This call is made for the sake of https://github.com/software-mansion/react-native-screens/pull/2466.
|
|
914
|
+
// In case header subview is added **after initial screen render** the system positions it correctly,
|
|
915
|
+
// however `viewDidLayoutSubviews` is not called on `RNSNavigationController` and updated frame sizes of the
|
|
916
|
+
// subviews are not sent to ShadowTree leading to issues with pressables.
|
|
917
|
+
// Sending state update to ShadowTree from here is not enough, because native layout has not yet
|
|
918
|
+
// happened after the child had been added. Requesting layout on navigation bar does not trigger layout callbacks
|
|
919
|
+
// either, however doing so on main view of navigation controller does the trick.
|
|
920
|
+
[self layoutNavigationControllerView];
|
|
921
|
+
}
|
|
922
|
+
_addedReactSubviewsInCurrentTransaction = false;
|
|
923
|
+
}
|
|
924
|
+
|
|
871
925
|
- (void)replaceNavigationBarViewsWithSnapshotOfSubview:(RNSScreenStackHeaderSubview *)childComponentView
|
|
872
926
|
{
|
|
873
927
|
if (childComponentView.window != nil) {
|
|
@@ -938,7 +992,12 @@ static RCTResizeMode resizeModeFromCppEquiv(react::ImageResizeMode resizeMode)
|
|
|
938
992
|
{
|
|
939
993
|
[super prepareForRecycle];
|
|
940
994
|
_initialPropsSet = NO;
|
|
995
|
+
|
|
996
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
997
|
+
_lastSize = CGSizeZero;
|
|
998
|
+
#else
|
|
941
999
|
_lastHeaderInsets = NSDirectionalEdgeInsets{};
|
|
1000
|
+
#endif
|
|
942
1001
|
}
|
|
943
1002
|
|
|
944
1003
|
- (NSNumber *)getFontSizePropValue:(int)value
|
|
@@ -20,6 +20,10 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
20
20
|
|
|
21
21
|
@property (nonatomic, weak) UIView *reactSuperview;
|
|
22
22
|
|
|
23
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
24
|
+
- (void)updateHeaderSubviewFrameInShadowTree:(CGRect)frame;
|
|
25
|
+
#endif
|
|
26
|
+
|
|
23
27
|
@end
|
|
24
28
|
|
|
25
29
|
@interface RNSScreenStackHeaderSubviewManager : RCTViewManager
|
|
@@ -18,7 +18,12 @@
|
|
|
18
18
|
namespace react = facebook::react;
|
|
19
19
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
20
20
|
|
|
21
|
-
@implementation RNSScreenStackHeaderSubview
|
|
21
|
+
@implementation RNSScreenStackHeaderSubview {
|
|
22
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
23
|
+
react::RNSScreenStackHeaderSubviewShadowNode::ConcreteState::Shared _state;
|
|
24
|
+
CGRect _lastScheduledFrame;
|
|
25
|
+
#endif
|
|
26
|
+
}
|
|
22
27
|
|
|
23
28
|
#pragma mark - Common
|
|
24
29
|
|
|
@@ -74,6 +79,7 @@ namespace react = facebook::react;
|
|
|
74
79
|
if (self = [super initWithFrame:frame]) {
|
|
75
80
|
static const auto defaultProps = std::make_shared<const react::RNSScreenStackHeaderSubviewProps>();
|
|
76
81
|
_props = defaultProps;
|
|
82
|
+
_lastScheduledFrame = CGRectZero;
|
|
77
83
|
}
|
|
78
84
|
|
|
79
85
|
return self;
|
|
@@ -127,6 +133,25 @@ RNS_IGNORE_SUPER_CALL_BEGIN
|
|
|
127
133
|
return NO;
|
|
128
134
|
}
|
|
129
135
|
|
|
136
|
+
- (void)updateState:(const facebook::react::State::Shared &)state
|
|
137
|
+
oldState:(const facebook::react::State::Shared &)oldState
|
|
138
|
+
{
|
|
139
|
+
_state = std::static_pointer_cast<const react::RNSScreenStackHeaderSubviewShadowNode::ConcreteState>(state);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
- (void)updateHeaderSubviewFrameInShadowTree:(CGRect)frame
|
|
143
|
+
{
|
|
144
|
+
if (_state == nullptr) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (!CGRectEqualToRect(frame, _lastScheduledFrame)) {
|
|
149
|
+
auto newState =
|
|
150
|
+
react::RNSScreenStackHeaderSubviewState(RCTSizeFromCGSize(frame.size), RCTPointFromCGPoint(frame.origin));
|
|
151
|
+
_state->updateState(std::move(newState));
|
|
152
|
+
_lastScheduledFrame = frame;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
130
155
|
#else // RCT_NEW_ARCH_ENABLED
|
|
131
156
|
#pragma mark - Paper specific
|
|
132
157
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object","defineProperty","exports","value","ScreenStackHeaderSubview","ScreenStackHeaderSearchBarView","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderConfig","ScreenStackHeaderCenterView","ScreenStackHeaderBackButtonImage","_react","_interopRequireDefault","require","_reactNative","_ScreenStackHeaderConfigNativeComponent","_ScreenStackHeaderSubviewNativeComponent","e","__esModule","default","_extends","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","ScreenStackHeaderSubviewNativeComponent","React","forwardRef","props","ref","createElement","style","styles","headerConfig","pointerEvents","displayName","type","headerSubview","Image","resizeMode","fadeDuration","rest","headerSubviewCenter","StyleSheet","create","flexDirection","alignItems","justifyContent","flexShrink","position","
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","ScreenStackHeaderSubview","ScreenStackHeaderSearchBarView","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderConfig","ScreenStackHeaderCenterView","ScreenStackHeaderBackButtonImage","_react","_interopRequireDefault","require","_reactNative","_ScreenStackHeaderConfigNativeComponent","_ScreenStackHeaderSubviewNativeComponent","e","__esModule","default","_extends","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","ScreenStackHeaderSubviewNativeComponent","React","forwardRef","props","ref","createElement","style","styles","headerConfig","pointerEvents","displayName","type","headerSubview","Image","resizeMode","fadeDuration","rest","headerSubviewCenter","StyleSheet","create","flexDirection","alignItems","justifyContent","flexShrink","position","width","Platform","OS","undefined"],"sourceRoot":"../../../src","sources":["components/ScreenStackHeaderConfig.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -129,6 +129,12 @@ const ScreenGestureDetector = ({
|
|
|
129
129
|
return;
|
|
130
130
|
}
|
|
131
131
|
transitionConfig.screenDimensions = screenSize;
|
|
132
|
+
// Gesture Handler added `pointerType` to event payload back in 2.16.0,
|
|
133
|
+
// see: https://github.com/software-mansion/react-native-gesture-handler/pull/2760
|
|
134
|
+
// and this causes type errors here. Proper solution would be to patch parameter types
|
|
135
|
+
// of this function in reanimated. This should not cause runtime errors as the payload
|
|
136
|
+
// has correct shape, only the types are incorrect.
|
|
137
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
132
138
|
(0, _reactNativeReanimated.startScreenTransition)(transitionConfig);
|
|
133
139
|
canPerformUpdates.value = true;
|
|
134
140
|
}
|
|
@@ -162,6 +168,12 @@ const ScreenGestureDetector = ({
|
|
|
162
168
|
_RNScreensTurboModule.RNScreensTurboModule.finishTransition(stackTag, isTransitionCanceled);
|
|
163
169
|
};
|
|
164
170
|
screenTransitionConfig.value.isTransitionCanceled = isTransitionCanceled;
|
|
171
|
+
// Gesture Handler added `pointerType` to event payload back in 2.16.0,
|
|
172
|
+
// see: https://github.com/software-mansion/react-native-gesture-handler/pull/2760
|
|
173
|
+
// and this causes type errors here. Proper solution would be to patch parameter types
|
|
174
|
+
// of this function in reanimated. This should not cause runtime errors as the payload
|
|
175
|
+
// has correct shape, only the types are incorrect.
|
|
176
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
165
177
|
(0, _reactNativeReanimated.finishScreenTransition)(screenTransitionConfig.value);
|
|
166
178
|
}
|
|
167
179
|
let panGesture = _reactNativeGestureHandler.Gesture.Pan().onStart(onStart).onUpdate(onUpdate).onEnd(onEnd);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_fabricUtils","_RNScreensTurboModule","_defaults","_constraints","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","EmptyGestureHandler","Gesture","Fling","ScreenGestureDetector","children","gestureDetectorBridge","goBackGesture","screenEdgeGesture","transitionAnimation","customTransitionAnimation","screensRefs","currentScreenId","sharedEvent","useSharedValue","DefaultEvent","startingGesturePosition","canPerformUpdates","makeMutable","getAnimationForTransition","screenTransitionConfig","stackTag","belowTopScreenId","topScreenId","screenTransition","isTransitionCanceled","screenDimensions","DefaultScreenDimensions","onFinishAnimation","screenTagToNodeWrapperUI","IS_FABRIC","isFabric","current","stackUseEffectCallback","stackRef","value","findNodeHandle","Platform","OS","runOnUI","RNScreensTurboModule","disableSwipeBackForTopScreen","useEffect","undefined","screenTagToNodeWrapper","key","screenRef","screenData","getShadowNodeWrapperAndTagFromRef","tag","shadowNodeWrapper","console","warn","computeProgress","event","progress","startingPosition","translationX","width","absoluteX","translationY","height","absoluteY","Math","abs","progressX","progressY","max","onStart","transitionConfig","transitionData","startTransition","canStartTransition","topScreenTag","belowTopScreenTag","animatedRefMock","screenSize","measure","Error","finishTransition","startScreenTransition","onUpdate","checkBoundaries","updateTransition","onEnd","velocityFactor","distanceX","min","velocityX","distanceY","velocityY","requiredXDistance","requiredYDistance","checkIfTransitionCancelled","finishScreenTransition","panGesture","Pan","HIT_SLOP_SIZE","ACTIVATION_DISTANCE","activeOffsetX","hitSlop","left","top","right","activeOffsetY","Dimensions","bottom","createElement","GestureDetector","gesture","_default","exports"],"sourceRoot":"../../../src","sources":["gesture-handler/ScreenGestureDetector.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_fabricUtils","_RNScreensTurboModule","_defaults","_constraints","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","EmptyGestureHandler","Gesture","Fling","ScreenGestureDetector","children","gestureDetectorBridge","goBackGesture","screenEdgeGesture","transitionAnimation","customTransitionAnimation","screensRefs","currentScreenId","sharedEvent","useSharedValue","DefaultEvent","startingGesturePosition","canPerformUpdates","makeMutable","getAnimationForTransition","screenTransitionConfig","stackTag","belowTopScreenId","topScreenId","screenTransition","isTransitionCanceled","screenDimensions","DefaultScreenDimensions","onFinishAnimation","screenTagToNodeWrapperUI","IS_FABRIC","isFabric","current","stackUseEffectCallback","stackRef","value","findNodeHandle","Platform","OS","runOnUI","RNScreensTurboModule","disableSwipeBackForTopScreen","useEffect","undefined","screenTagToNodeWrapper","key","screenRef","screenData","getShadowNodeWrapperAndTagFromRef","tag","shadowNodeWrapper","console","warn","computeProgress","event","progress","startingPosition","translationX","width","absoluteX","translationY","height","absoluteY","Math","abs","progressX","progressY","max","onStart","transitionConfig","transitionData","startTransition","canStartTransition","topScreenTag","belowTopScreenTag","animatedRefMock","screenSize","measure","Error","finishTransition","startScreenTransition","onUpdate","checkBoundaries","updateTransition","onEnd","velocityFactor","distanceX","min","velocityX","distanceY","velocityY","requiredXDistance","requiredYDistance","checkIfTransitionCancelled","finishScreenTransition","panGesture","Pan","HIT_SLOP_SIZE","ACTIVATION_DISTANCE","activeOffsetX","hitSlop","left","top","right","activeOffsetY","Dimensions","bottom","createElement","GestureDetector","gesture","_default","exports"],"sourceRoot":"../../../src","sources":["gesture-handler/ScreenGestureDetector.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AAMA,IAAAG,sBAAA,GAAAH,OAAA;AAQA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,qBAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AAIuB,SAAAQ,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAGvB,MAAMW,mBAAmB,GAAGC,kCAAO,CAACC,KAAK,CAAC,CAAC;AAE3C,MAAMC,qBAAqB,GAAGA,CAAC;EAC7BC,QAAQ;EACRC,qBAAqB;EACrBC,aAAa;EACbC,iBAAiB;EACjBC,mBAAmB,EAAEC,yBAAyB;EAC9CC,WAAW;EACXC;AACoB,CAAC,KAAK;EAC1B,MAAMC,WAAW,GAAG,IAAAC,qCAAc,EAACC,sBAAY,CAAC;EAChD,MAAMC,uBAAuB,GAAG,IAAAF,qCAAc,EAACC,sBAAY,CAAC;EAC5D,MAAME,iBAAiB,GAAG,IAAAC,kCAAW,EAAC,KAAK,CAAC;EAC5C,MAAMT,mBAAmB,GAAG,IAAAU,sCAAyB,EACnDZ,aAAa,EACbG,yBACF,CAAC;EACD,MAAMU,sBAAsB,GAAG,IAAAF,kCAAW,EAAC;IACzCG,QAAQ,EAAE,CAAC,CAAC;IACZC,gBAAgB,EAAE,CAAC,CAAC;IACpBC,WAAW,EAAE,CAAC,CAAC;IACfV,WAAW;IACXG,uBAAuB;IACvBQ,gBAAgB,EAAEf,mBAAmB;IACrCgB,oBAAoB,EAAE,KAAK;IAC3BlB,aAAa,EAAEA,aAAa,IAAI,YAAY;IAC5CmB,gBAAgB,EAAEC,iCAAuB;IACzCC,iBAAiB,EAAEA,CAAA,KAAM;MACvB,SAAS;IACX;EACF,CAAC,CAAC;EACF,MAAMP,QAAQ,GAAG,IAAAH,kCAAW,EAAC,CAAC,CAAC,CAAC;EAChC,MAAMW,wBAAwB,GAAG,IAAAX,kCAAW,EAAsB,CAAC,CAAC,CAAC;EACrE,MAAMY,SAAS,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAE5BzB,qBAAqB,CAAC0B,OAAO,CAACC,sBAAsB,GAAGC,QAAQ,IAAI;IACjE,IAAI,CAAC3B,aAAa,EAAE;MAClB;IACF;IACAc,QAAQ,CAACc,KAAK,GAAG,IAAAC,2BAAc,EAACF,QAAQ,CAACF,OAAc,CAAW;IAClE,IAAIK,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,IAAAC,8BAAO,EAAC,MAAM;QACZC,0CAAoB,CAACC,4BAA4B,CAACpB,QAAQ,CAACc,KAAK,CAAC;MACnE,CAAC,CAAC,CAAC,CAAC;IACN;EACF,CAAC;EAED,IAAAO,gBAAS,EAAC,MAAM;IACd,IAAI,CAACZ,SAAS,IAAI,CAACvB,aAAa,IAAII,WAAW,KAAKgC,SAAS,EAAE;MAC7D;IACF;IACA,MAAMC,sBAA+D,GAAG,CAAC,CAAC;IAC1E,KAAK,MAAMC,GAAG,IAAIlC,WAAW,CAACqB,OAAO,EAAE;MACrC,MAAMc,SAAS,GAAGnC,WAAW,CAACqB,OAAO,CAACa,GAAG,CAAC;MAC1C,MAAME,UAAU,GAAG,IAAAC,8CAAiC,EAACF,SAAS,CAACd,OAAO,CAAC;MACvE,IAAIe,UAAU,CAACE,GAAG,IAAIF,UAAU,CAACG,iBAAiB,EAAE;QAClDN,sBAAsB,CAACG,UAAU,CAACE,GAAG,CAAC,GAAGF,UAAU,CAACG,iBAAiB;MACvE,CAAC,MAAM;QACLC,OAAO,CAACC,IAAI,CAAC,4CAA4C,CAAC;MAC5D;IACF;IACAvB,wBAAwB,CAACM,KAAK,GAAGS,sBAAsB;EACzD,CAAC,EAAE,CAAChC,eAAe,EAAEL,aAAa,CAAC,CAAC;EAEpC,SAAS8C,eAAeA,CACtBC,KAAwD,EACxD;IACA,SAAS;;IACT,IAAIC,QAAQ,GAAG,CAAC;IAChB,MAAM7B,gBAAgB,GAAGN,sBAAsB,CAACe,KAAK,CAACT,gBAAgB;IACtE,MAAM8B,gBAAgB,GAAGxC,uBAAuB,CAACmB,KAAK;IACtD,IAAI5B,aAAa,KAAK,YAAY,EAAE;MAClCgD,QAAQ,GACND,KAAK,CAACG,YAAY,IACjB/B,gBAAgB,CAACgC,KAAK,GAAGF,gBAAgB,CAACG,SAAS,CAAC;IACzD,CAAC,MAAM,IAAIpD,aAAa,KAAK,WAAW,EAAE;MACxCgD,QAAQ,GAAI,CAAC,CAAC,GAAGD,KAAK,CAACG,YAAY,GAAID,gBAAgB,CAACG,SAAS;IACnE,CAAC,MAAM,IAAIpD,aAAa,KAAK,WAAW,EAAE;MACxCgD,QAAQ,GACL,CAAC,CAAC,GAAGD,KAAK,CAACM,YAAY,IACvBlC,gBAAgB,CAACmC,MAAM,GAAGL,gBAAgB,CAACM,SAAS,CAAC;IAC1D,CAAC,MAAM,IAAIvD,aAAa,KAAK,SAAS,EAAE;MACtCgD,QAAQ,GAAGD,KAAK,CAACM,YAAY,GAAGJ,gBAAgB,CAACM,SAAS;IAC5D,CAAC,MAAM,IAAIvD,aAAa,KAAK,iBAAiB,EAAE;MAC9CgD,QAAQ,GAAGQ,IAAI,CAACC,GAAG,CAACV,KAAK,CAACG,YAAY,GAAG/B,gBAAgB,CAACgC,KAAK,GAAG,CAAC,CAAC;IACtE,CAAC,MAAM,IAAInD,aAAa,KAAK,eAAe,EAAE;MAC5CgD,QAAQ,GAAGQ,IAAI,CAACC,GAAG,CAACV,KAAK,CAACM,YAAY,GAAGlC,gBAAgB,CAACmC,MAAM,GAAG,CAAC,CAAC;IACvE,CAAC,MAAM,IAAItD,aAAa,KAAK,qBAAqB,EAAE;MAClD,MAAM0D,SAAS,GAAGF,IAAI,CAACC,GAAG,CACxBV,KAAK,CAACG,YAAY,GAAG/B,gBAAgB,CAACgC,KAAK,GAAG,CAChD,CAAC;MACD,MAAMQ,SAAS,GAAGH,IAAI,CAACC,GAAG,CACxBV,KAAK,CAACM,YAAY,GAAGlC,gBAAgB,CAACmC,MAAM,GAAG,CACjD,CAAC;MACDN,QAAQ,GAAGQ,IAAI,CAACI,GAAG,CAACF,SAAS,EAAEC,SAAS,CAAC;IAC3C;IACA,OAAOX,QAAQ;EACjB;EAEA,SAASa,OAAOA,CAACd,KAAwD,EAAE;IACzE,SAAS;;IACTzC,WAAW,CAACsB,KAAK,GAAGmB,KAAK;IACzB,MAAMe,gBAAgB,GAAGjD,sBAAsB,CAACe,KAAK;IACrD,MAAMmC,cAAc,GAAG9B,0CAAoB,CAAC+B,eAAe,CAAClD,QAAQ,CAACc,KAAK,CAAC;IAC3E,IAAImC,cAAc,CAACE,kBAAkB,KAAK,KAAK,EAAE;MAC/CvD,iBAAiB,CAACkB,KAAK,GAAG,KAAK;MAC/B;IACF;IAEA,IAAIL,SAAS,EAAE;MACbuC,gBAAgB,CAAC9C,WAAW,GAC1BM,wBAAwB,CAACM,KAAK,CAACmC,cAAc,CAACG,YAAY,CAAC;MAC7DJ,gBAAgB,CAAC/C,gBAAgB,GAC/BO,wBAAwB,CAACM,KAAK,CAACmC,cAAc,CAACI,iBAAiB,CAAC;IACpE,CAAC,MAAM;MACLL,gBAAgB,CAAC9C,WAAW,GAAG+C,cAAc,CAACG,YAAY;MAC1DJ,gBAAgB,CAAC/C,gBAAgB,GAAGgD,cAAc,CAACI,iBAAiB;IACtE;IAEAL,gBAAgB,CAAChD,QAAQ,GAAGA,QAAQ,CAACc,KAAK;IAC1CnB,uBAAuB,CAACmB,KAAK,GAAGmB,KAAK;IACrC,MAAMqB,eAAe,GAAGA,CAAA,KAAM;MAC5B,OAAOvD,sBAAsB,CAACe,KAAK,CAACZ,WAAW;IACjD,CAAC;IACD,MAAMqD,UAAU,GAAG,IAAAC,8BAAO,EAACF,eAAsB,CAAC;IAClD,IAAIC,UAAU,IAAI,IAAI,EAAE;MACtB,MAAM,IAAIE,KAAK,CAAC,uCAAuC,CAAC;IAC1D;IACA,IAAIF,UAAU,IAAI,IAAI,EAAE;MACtB3D,iBAAiB,CAACkB,KAAK,GAAG,KAAK;MAC/BK,0CAAoB,CAACuC,gBAAgB,CAAC1D,QAAQ,CAACc,KAAK,EAAE,IAAI,CAAC;MAC3D;IACF;IACAkC,gBAAgB,CAAC3C,gBAAgB,GAAGkD,UAAU;IAC9C;IACA;IACA;IACA;IACA;IACA;IACA,IAAAI,4CAAqB,EAACX,gBAAuB,CAAC;IAC9CpD,iBAAiB,CAACkB,KAAK,GAAG,IAAI;EAChC;EAEA,SAAS8C,QAAQA,CAAC3B,KAAwD,EAAE;IAC1E,SAAS;;IACT,IAAI,CAACrC,iBAAiB,CAACkB,KAAK,EAAE;MAC5B;IACF;IACA,IAAA+C,4BAAe,EAAC3E,aAAa,EAAE+C,KAAK,CAAC;IACrC,MAAMC,QAAQ,GAAGF,eAAe,CAACC,KAAK,CAAC;IACvCzC,WAAW,CAACsB,KAAK,GAAGmB,KAAK;IACzB,MAAMjC,QAAQ,GAAGD,sBAAsB,CAACe,KAAK,CAACd,QAAQ;IACtDmB,0CAAoB,CAAC2C,gBAAgB,CAAC9D,QAAQ,EAAEkC,QAAQ,CAAC;EAC3D;EAEA,SAAS6B,KAAKA,CAAC9B,KAAwD,EAAE;IACvE,SAAS;;IACT,IAAI,CAACrC,iBAAiB,CAACkB,KAAK,EAAE;MAC5B;IACF;IAEA,MAAMkD,cAAc,GAAG,GAAG;IAC1B,MAAMT,UAAU,GAAGxD,sBAAsB,CAACe,KAAK,CAACT,gBAAgB;IAChE,MAAM4D,SAAS,GACbhC,KAAK,CAACG,YAAY,GAAGM,IAAI,CAACwB,GAAG,CAACjC,KAAK,CAACkC,SAAS,GAAGH,cAAc,EAAE,GAAG,CAAC;IACtE,MAAMI,SAAS,GACbnC,KAAK,CAACM,YAAY,GAAGG,IAAI,CAACwB,GAAG,CAACjC,KAAK,CAACoC,SAAS,GAAGL,cAAc,EAAE,GAAG,CAAC;IACtE,MAAMM,iBAAiB,GAAGf,UAAU,CAAClB,KAAK,GAAG,CAAC;IAC9C,MAAMkC,iBAAiB,GAAGhB,UAAU,CAACf,MAAM,GAAG,CAAC;IAC/C,MAAMpC,oBAAoB,GAAG,IAAAoE,uCAA0B,EACrDtF,aAAa,EACb+E,SAAS,EACTK,iBAAiB,EACjBF,SAAS,EACTG,iBACF,CAAC;IACD,MAAMvE,QAAQ,GAAGD,sBAAsB,CAACe,KAAK,CAACd,QAAQ;IACtDD,sBAAsB,CAACe,KAAK,CAACP,iBAAiB,GAAG,MAAM;MACrDY,0CAAoB,CAACuC,gBAAgB,CAAC1D,QAAQ,EAAEI,oBAAoB,CAAC;IACvE,CAAC;IACDL,sBAAsB,CAACe,KAAK,CAACV,oBAAoB,GAAGA,oBAAoB;IACxE;IACA;IACA;IACA;IACA;IACA;IACA,IAAAqE,6CAAsB,EAAC1E,sBAAsB,CAACe,KAAY,CAAC;EAC7D;EAEA,IAAI4D,UAAU,GAAG7F,kCAAO,CAAC8F,GAAG,CAAC,CAAC,CAC3B5B,OAAO,CAACA,OAAO,CAAC,CAChBa,QAAQ,CAACA,QAAQ,CAAC,CAClBG,KAAK,CAACA,KAAK,CAAC;EAEf,IAAI5E,iBAAiB,EAAE;IACrB,MAAMyF,aAAa,GAAG,EAAE;IACxB,MAAMC,mBAAmB,GAAG,EAAE;IAC9B,IAAI3F,aAAa,KAAK,YAAY,EAAE;MAClCwF,UAAU,GAAGA,UAAU,CACpBI,aAAa,CAACD,mBAAmB,CAAC,CAClCE,OAAO,CAAC;QAAEC,IAAI,EAAE,CAAC;QAAEC,GAAG,EAAE,CAAC;QAAE5C,KAAK,EAAEuC;MAAc,CAAC,CAAC;IACvD,CAAC,MAAM,IAAI1F,aAAa,KAAK,WAAW,EAAE;MACxCwF,UAAU,GAAGA,UAAU,CACpBI,aAAa,CAAC,CAACD,mBAAmB,CAAC,CACnCE,OAAO,CAAC;QAAEG,KAAK,EAAE,CAAC;QAAED,GAAG,EAAE,CAAC;QAAE5C,KAAK,EAAEuC;MAAc,CAAC,CAAC;IACxD,CAAC,MAAM,IAAI1F,aAAa,KAAK,WAAW,EAAE;MACxCwF,UAAU,GAAGA,UAAU,CACpBS,aAAa,CAACN,mBAAmB,CAAC,CAClCE,OAAO,CAAC;QAAEE,GAAG,EAAE,CAAC;QAAEzC,MAAM,EAAE4C,uBAAU,CAACpH,GAAG,CAAC,QAAQ,CAAC,CAACwE,MAAM,GAAG;MAAI,CAAC,CAAC;MACrE;IACF,CAAC,MAAM,IAAItD,aAAa,KAAK,SAAS,EAAE;MACtCwF,UAAU,GAAGA,UAAU,CACpBS,aAAa,CAAC,CAACN,mBAAmB,CAAC,CACnCE,OAAO,CAAC;QAAEM,MAAM,EAAE,CAAC;QAAE7C,MAAM,EAAEoC;MAAc,CAAC,CAAC;IAClD;EACF;EACA,oBACE9H,MAAA,CAAAgB,OAAA,CAAAwH,aAAA,CAACpI,0BAAA,CAAAqI,eAAe;IAACC,OAAO,EAAEtG,aAAa,GAAGwF,UAAU,GAAG9F;EAAoB,GACxEI,QACc,CAAC;AAEtB,CAAC;AAAC,IAAAyG,QAAA,GAAAC,OAAA,CAAA5H,OAAA,GAEaiB,qBAAqB","ignoreList":[]}
|
|
@@ -22,8 +22,7 @@ const DefaultEvent = exports.DefaultEvent = {
|
|
|
22
22
|
// and they are required to specify. This should be backward
|
|
23
23
|
// compatible unless they strictly parse the objects, which seems
|
|
24
24
|
// not likely. PointerType is present since 2.16.0, StylusData since 2.20.0
|
|
25
|
-
pointerType: _reactNativeGestureHandler.PointerType.TOUCH
|
|
26
|
-
stylusData: undefined
|
|
25
|
+
pointerType: _reactNativeGestureHandler.PointerType.TOUCH
|
|
27
26
|
};
|
|
28
27
|
const DefaultScreenDimensions = exports.DefaultScreenDimensions = {
|
|
29
28
|
width: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeGestureHandler","require","_reactNativeReanimated","DefaultEvent","exports","absoluteX","absoluteY","handlerTag","numberOfPointers","state","translationX","translationY","velocityX","velocityY","x","y","pointerType","PointerType","TOUCH","
|
|
1
|
+
{"version":3,"names":["_reactNativeGestureHandler","require","_reactNativeReanimated","DefaultEvent","exports","absoluteX","absoluteY","handlerTag","numberOfPointers","state","translationX","translationY","velocityX","velocityY","x","y","pointerType","PointerType","TOUCH","DefaultScreenDimensions","width","height","pageX","pageY","AnimationForGesture","swipeRight","ScreenTransition","SwipeRight","swipeLeft","SwipeLeft","swipeDown","SwipeDown","swipeUp","SwipeUp","horizontalSwipe","Horizontal","verticalSwipe","Vertical","twoDimensionalSwipe","TwoDimensional"],"sourceRoot":"../../../src","sources":["gesture-handler/defaults.ts"],"mappings":";;;;;;AAAA,IAAAA,0BAAA,GAAAC,OAAA;AAKA,IAAAC,sBAAA,GAAAD,OAAA;AAEO,MAAME,YAA+D,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC7EE,SAAS,EAAE,CAAC;EACZC,SAAS,EAAE,CAAC;EACZC,UAAU,EAAE,CAAC;EACbC,gBAAgB,EAAE,CAAC;EACnBC,KAAK,EAAE,CAAC;EACRC,YAAY,EAAE,CAAC;EACfC,YAAY,EAAE,CAAC;EACfC,SAAS,EAAE,CAAC;EACZC,SAAS,EAAE,CAAC;EACZC,CAAC,EAAE,CAAC;EACJC,CAAC,EAAE,CAAC;EAEJ;EACA;EACA;EACA;EACAC,WAAW,EAAEC,sCAAW,CAACC;AAC3B,CAAC;AAEM,MAAMC,uBAAuB,GAAAf,OAAA,CAAAe,uBAAA,GAAG;EACrCC,KAAK,EAAE,CAAC;EACRC,MAAM,EAAE,CAAC;EACTP,CAAC,EAAE,CAAC;EACJC,CAAC,EAAE,CAAC;EACJO,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE;AACT,CAAC;AAEM,MAAMC,mBAAmB,GAAApB,OAAA,CAAAoB,mBAAA,GAAG;EACjCC,UAAU,EAAEC,uCAAgB,CAACC,UAAU;EACvCC,SAAS,EAAEF,uCAAgB,CAACG,SAAS;EACrCC,SAAS,EAAEJ,uCAAgB,CAACK,SAAS;EACrCC,OAAO,EAAEN,uCAAgB,CAACO,OAAO;EACjCC,eAAe,EAAER,uCAAgB,CAACS,UAAU;EAC5CC,aAAa,EAAEV,uCAAgB,CAACW,QAAQ;EACxCC,mBAAmB,EAAEZ,uCAAgB,CAACa;AACxC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","React","Image","Platform","StyleSheet","ScreenStackHeaderConfigNativeComponent","ScreenStackHeaderSubviewNativeComponent","ScreenStackHeaderSubview","ScreenStackHeaderConfig","forwardRef","props","ref","createElement","style","styles","headerConfig","pointerEvents","displayName","ScreenStackHeaderBackButtonImage","type","headerSubview","resizeMode","fadeDuration","ScreenStackHeaderRightView","rest","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","headerSubviewCenter","ScreenStackHeaderSearchBarView","create","flexDirection","alignItems","justifyContent","flexShrink","position","
|
|
1
|
+
{"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","React","Image","Platform","StyleSheet","ScreenStackHeaderConfigNativeComponent","ScreenStackHeaderSubviewNativeComponent","ScreenStackHeaderSubview","ScreenStackHeaderConfig","forwardRef","props","ref","createElement","style","styles","headerConfig","pointerEvents","displayName","ScreenStackHeaderBackButtonImage","type","headerSubview","resizeMode","fadeDuration","ScreenStackHeaderRightView","rest","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","headerSubviewCenter","ScreenStackHeaderSearchBarView","create","flexDirection","alignItems","justifyContent","flexShrink","position","width","OS","undefined"],"sourceRoot":"../../../src","sources":["components/ScreenStackHeaderConfig.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -121,6 +121,12 @@ const ScreenGestureDetector = ({
|
|
|
121
121
|
return;
|
|
122
122
|
}
|
|
123
123
|
transitionConfig.screenDimensions = screenSize;
|
|
124
|
+
// Gesture Handler added `pointerType` to event payload back in 2.16.0,
|
|
125
|
+
// see: https://github.com/software-mansion/react-native-gesture-handler/pull/2760
|
|
126
|
+
// and this causes type errors here. Proper solution would be to patch parameter types
|
|
127
|
+
// of this function in reanimated. This should not cause runtime errors as the payload
|
|
128
|
+
// has correct shape, only the types are incorrect.
|
|
129
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
124
130
|
startScreenTransition(transitionConfig);
|
|
125
131
|
canPerformUpdates.value = true;
|
|
126
132
|
}
|
|
@@ -154,6 +160,12 @@ const ScreenGestureDetector = ({
|
|
|
154
160
|
RNScreensTurboModule.finishTransition(stackTag, isTransitionCanceled);
|
|
155
161
|
};
|
|
156
162
|
screenTransitionConfig.value.isTransitionCanceled = isTransitionCanceled;
|
|
163
|
+
// Gesture Handler added `pointerType` to event payload back in 2.16.0,
|
|
164
|
+
// see: https://github.com/software-mansion/react-native-gesture-handler/pull/2760
|
|
165
|
+
// and this causes type errors here. Proper solution would be to patch parameter types
|
|
166
|
+
// of this function in reanimated. This should not cause runtime errors as the payload
|
|
167
|
+
// has correct shape, only the types are incorrect.
|
|
168
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
157
169
|
finishScreenTransition(screenTransitionConfig.value);
|
|
158
170
|
}
|
|
159
171
|
let panGesture = Gesture.Pan().onStart(onStart).onUpdate(onUpdate).onEnd(onEnd);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","Dimensions","Platform","findNodeHandle","GestureDetector","Gesture","useSharedValue","measure","startScreenTransition","finishScreenTransition","makeMutable","runOnUI","getShadowNodeWrapperAndTagFromRef","isFabric","RNScreensTurboModule","DefaultEvent","DefaultScreenDimensions","checkBoundaries","checkIfTransitionCancelled","getAnimationForTransition","EmptyGestureHandler","Fling","ScreenGestureDetector","children","gestureDetectorBridge","goBackGesture","screenEdgeGesture","transitionAnimation","customTransitionAnimation","screensRefs","currentScreenId","sharedEvent","startingGesturePosition","canPerformUpdates","screenTransitionConfig","stackTag","belowTopScreenId","topScreenId","screenTransition","isTransitionCanceled","screenDimensions","onFinishAnimation","screenTagToNodeWrapperUI","IS_FABRIC","current","stackUseEffectCallback","stackRef","value","OS","disableSwipeBackForTopScreen","undefined","screenTagToNodeWrapper","key","screenRef","screenData","tag","shadowNodeWrapper","console","warn","computeProgress","event","progress","startingPosition","translationX","width","absoluteX","translationY","height","absoluteY","Math","abs","progressX","progressY","max","onStart","transitionConfig","transitionData","startTransition","canStartTransition","topScreenTag","belowTopScreenTag","animatedRefMock","screenSize","Error","finishTransition","onUpdate","updateTransition","onEnd","velocityFactor","distanceX","min","velocityX","distanceY","velocityY","requiredXDistance","requiredYDistance","panGesture","Pan","HIT_SLOP_SIZE","ACTIVATION_DISTANCE","activeOffsetX","hitSlop","left","top","right","activeOffsetY","get","bottom","createElement","gesture"],"sourceRoot":"../../../src","sources":["gesture-handler/ScreenGestureDetector.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["React","useEffect","Dimensions","Platform","findNodeHandle","GestureDetector","Gesture","useSharedValue","measure","startScreenTransition","finishScreenTransition","makeMutable","runOnUI","getShadowNodeWrapperAndTagFromRef","isFabric","RNScreensTurboModule","DefaultEvent","DefaultScreenDimensions","checkBoundaries","checkIfTransitionCancelled","getAnimationForTransition","EmptyGestureHandler","Fling","ScreenGestureDetector","children","gestureDetectorBridge","goBackGesture","screenEdgeGesture","transitionAnimation","customTransitionAnimation","screensRefs","currentScreenId","sharedEvent","startingGesturePosition","canPerformUpdates","screenTransitionConfig","stackTag","belowTopScreenId","topScreenId","screenTransition","isTransitionCanceled","screenDimensions","onFinishAnimation","screenTagToNodeWrapperUI","IS_FABRIC","current","stackUseEffectCallback","stackRef","value","OS","disableSwipeBackForTopScreen","undefined","screenTagToNodeWrapper","key","screenRef","screenData","tag","shadowNodeWrapper","console","warn","computeProgress","event","progress","startingPosition","translationX","width","absoluteX","translationY","height","absoluteY","Math","abs","progressX","progressY","max","onStart","transitionConfig","transitionData","startTransition","canStartTransition","topScreenTag","belowTopScreenTag","animatedRefMock","screenSize","Error","finishTransition","onUpdate","updateTransition","onEnd","velocityFactor","distanceX","min","velocityX","distanceY","velocityY","requiredXDistance","requiredYDistance","panGesture","Pan","HIT_SLOP_SIZE","ACTIVATION_DISTANCE","activeOffsetX","hitSlop","left","top","right","activeOffsetY","get","bottom","createElement","gesture"],"sourceRoot":"../../../src","sources":["gesture-handler/ScreenGestureDetector.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,UAAU,EAAEC,QAAQ,EAAEC,cAAc,QAAQ,cAAc;AACnE,SACEC,eAAe,EACfC,OAAO,QAGF,8BAA8B;AACrC,SACEC,cAAc,EACdC,OAAO,EACPC,qBAAqB,EACrBC,sBAAsB,EACtBC,WAAW,EACXC,OAAO,QACF,yBAAyB;AAChC,SAASC,iCAAiC,EAAEC,QAAQ,QAAQ,eAAe;AAC3E,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,YAAY,EAAEC,uBAAuB,QAAQ,YAAY;AAClE,SACEC,eAAe,EACfC,0BAA0B,EAC1BC,yBAAyB,QACpB,eAAe;AAGtB,MAAMC,mBAAmB,GAAGf,OAAO,CAACgB,KAAK,CAAC,CAAC;AAE3C,MAAMC,qBAAqB,GAAGA,CAAC;EAC7BC,QAAQ;EACRC,qBAAqB;EACrBC,aAAa;EACbC,iBAAiB;EACjBC,mBAAmB,EAAEC,yBAAyB;EAC9CC,WAAW;EACXC;AACoB,CAAC,KAAK;EAC1B,MAAMC,WAAW,GAAGzB,cAAc,CAACS,YAAY,CAAC;EAChD,MAAMiB,uBAAuB,GAAG1B,cAAc,CAACS,YAAY,CAAC;EAC5D,MAAMkB,iBAAiB,GAAGvB,WAAW,CAAC,KAAK,CAAC;EAC5C,MAAMiB,mBAAmB,GAAGR,yBAAyB,CACnDM,aAAa,EACbG,yBACF,CAAC;EACD,MAAMM,sBAAsB,GAAGxB,WAAW,CAAC;IACzCyB,QAAQ,EAAE,CAAC,CAAC;IACZC,gBAAgB,EAAE,CAAC,CAAC;IACpBC,WAAW,EAAE,CAAC,CAAC;IACfN,WAAW;IACXC,uBAAuB;IACvBM,gBAAgB,EAAEX,mBAAmB;IACrCY,oBAAoB,EAAE,KAAK;IAC3Bd,aAAa,EAAEA,aAAa,IAAI,YAAY;IAC5Ce,gBAAgB,EAAExB,uBAAuB;IACzCyB,iBAAiB,EAAEA,CAAA,KAAM;MACvB,SAAS;IACX;EACF,CAAC,CAAC;EACF,MAAMN,QAAQ,GAAGzB,WAAW,CAAC,CAAC,CAAC,CAAC;EAChC,MAAMgC,wBAAwB,GAAGhC,WAAW,CAAsB,CAAC,CAAC,CAAC;EACrE,MAAMiC,SAAS,GAAG9B,QAAQ,CAAC,CAAC;EAE5BW,qBAAqB,CAACoB,OAAO,CAACC,sBAAsB,GAAGC,QAAQ,IAAI;IACjE,IAAI,CAACrB,aAAa,EAAE;MAClB;IACF;IACAU,QAAQ,CAACY,KAAK,GAAG5C,cAAc,CAAC2C,QAAQ,CAACF,OAAc,CAAW;IAClE,IAAI1C,QAAQ,CAAC8C,EAAE,KAAK,KAAK,EAAE;MACzBrC,OAAO,CAAC,MAAM;QACZG,oBAAoB,CAACmC,4BAA4B,CAACd,QAAQ,CAACY,KAAK,CAAC;MACnE,CAAC,CAAC,CAAC,CAAC;IACN;EACF,CAAC;EAED/C,SAAS,CAAC,MAAM;IACd,IAAI,CAAC2C,SAAS,IAAI,CAAClB,aAAa,IAAII,WAAW,KAAKqB,SAAS,EAAE;MAC7D;IACF;IACA,MAAMC,sBAA+D,GAAG,CAAC,CAAC;IAC1E,KAAK,MAAMC,GAAG,IAAIvB,WAAW,CAACe,OAAO,EAAE;MACrC,MAAMS,SAAS,GAAGxB,WAAW,CAACe,OAAO,CAACQ,GAAG,CAAC;MAC1C,MAAME,UAAU,GAAG1C,iCAAiC,CAACyC,SAAS,CAACT,OAAO,CAAC;MACvE,IAAIU,UAAU,CAACC,GAAG,IAAID,UAAU,CAACE,iBAAiB,EAAE;QAClDL,sBAAsB,CAACG,UAAU,CAACC,GAAG,CAAC,GAAGD,UAAU,CAACE,iBAAiB;MACvE,CAAC,MAAM;QACLC,OAAO,CAACC,IAAI,CAAC,4CAA4C,CAAC;MAC5D;IACF;IACAhB,wBAAwB,CAACK,KAAK,GAAGI,sBAAsB;EACzD,CAAC,EAAE,CAACrB,eAAe,EAAEL,aAAa,CAAC,CAAC;EAEpC,SAASkC,eAAeA,CACtBC,KAAwD,EACxD;IACA,SAAS;;IACT,IAAIC,QAAQ,GAAG,CAAC;IAChB,MAAMrB,gBAAgB,GAAGN,sBAAsB,CAACa,KAAK,CAACP,gBAAgB;IACtE,MAAMsB,gBAAgB,GAAG9B,uBAAuB,CAACe,KAAK;IACtD,IAAItB,aAAa,KAAK,YAAY,EAAE;MAClCoC,QAAQ,GACND,KAAK,CAACG,YAAY,IACjBvB,gBAAgB,CAACwB,KAAK,GAAGF,gBAAgB,CAACG,SAAS,CAAC;IACzD,CAAC,MAAM,IAAIxC,aAAa,KAAK,WAAW,EAAE;MACxCoC,QAAQ,GAAI,CAAC,CAAC,GAAGD,KAAK,CAACG,YAAY,GAAID,gBAAgB,CAACG,SAAS;IACnE,CAAC,MAAM,IAAIxC,aAAa,KAAK,WAAW,EAAE;MACxCoC,QAAQ,GACL,CAAC,CAAC,GAAGD,KAAK,CAACM,YAAY,IACvB1B,gBAAgB,CAAC2B,MAAM,GAAGL,gBAAgB,CAACM,SAAS,CAAC;IAC1D,CAAC,MAAM,IAAI3C,aAAa,KAAK,SAAS,EAAE;MACtCoC,QAAQ,GAAGD,KAAK,CAACM,YAAY,GAAGJ,gBAAgB,CAACM,SAAS;IAC5D,CAAC,MAAM,IAAI3C,aAAa,KAAK,iBAAiB,EAAE;MAC9CoC,QAAQ,GAAGQ,IAAI,CAACC,GAAG,CAACV,KAAK,CAACG,YAAY,GAAGvB,gBAAgB,CAACwB,KAAK,GAAG,CAAC,CAAC;IACtE,CAAC,MAAM,IAAIvC,aAAa,KAAK,eAAe,EAAE;MAC5CoC,QAAQ,GAAGQ,IAAI,CAACC,GAAG,CAACV,KAAK,CAACM,YAAY,GAAG1B,gBAAgB,CAAC2B,MAAM,GAAG,CAAC,CAAC;IACvE,CAAC,MAAM,IAAI1C,aAAa,KAAK,qBAAqB,EAAE;MAClD,MAAM8C,SAAS,GAAGF,IAAI,CAACC,GAAG,CACxBV,KAAK,CAACG,YAAY,GAAGvB,gBAAgB,CAACwB,KAAK,GAAG,CAChD,CAAC;MACD,MAAMQ,SAAS,GAAGH,IAAI,CAACC,GAAG,CACxBV,KAAK,CAACM,YAAY,GAAG1B,gBAAgB,CAAC2B,MAAM,GAAG,CACjD,CAAC;MACDN,QAAQ,GAAGQ,IAAI,CAACI,GAAG,CAACF,SAAS,EAAEC,SAAS,CAAC;IAC3C;IACA,OAAOX,QAAQ;EACjB;EAEA,SAASa,OAAOA,CAACd,KAAwD,EAAE;IACzE,SAAS;;IACT7B,WAAW,CAACgB,KAAK,GAAGa,KAAK;IACzB,MAAMe,gBAAgB,GAAGzC,sBAAsB,CAACa,KAAK;IACrD,MAAM6B,cAAc,GAAG9D,oBAAoB,CAAC+D,eAAe,CAAC1C,QAAQ,CAACY,KAAK,CAAC;IAC3E,IAAI6B,cAAc,CAACE,kBAAkB,KAAK,KAAK,EAAE;MAC/C7C,iBAAiB,CAACc,KAAK,GAAG,KAAK;MAC/B;IACF;IAEA,IAAIJ,SAAS,EAAE;MACbgC,gBAAgB,CAACtC,WAAW,GAC1BK,wBAAwB,CAACK,KAAK,CAAC6B,cAAc,CAACG,YAAY,CAAC;MAC7DJ,gBAAgB,CAACvC,gBAAgB,GAC/BM,wBAAwB,CAACK,KAAK,CAAC6B,cAAc,CAACI,iBAAiB,CAAC;IACpE,CAAC,MAAM;MACLL,gBAAgB,CAACtC,WAAW,GAAGuC,cAAc,CAACG,YAAY;MAC1DJ,gBAAgB,CAACvC,gBAAgB,GAAGwC,cAAc,CAACI,iBAAiB;IACtE;IAEAL,gBAAgB,CAACxC,QAAQ,GAAGA,QAAQ,CAACY,KAAK;IAC1Cf,uBAAuB,CAACe,KAAK,GAAGa,KAAK;IACrC,MAAMqB,eAAe,GAAGA,CAAA,KAAM;MAC5B,OAAO/C,sBAAsB,CAACa,KAAK,CAACV,WAAW;IACjD,CAAC;IACD,MAAM6C,UAAU,GAAG3E,OAAO,CAAC0E,eAAsB,CAAC;IAClD,IAAIC,UAAU,IAAI,IAAI,EAAE;MACtB,MAAM,IAAIC,KAAK,CAAC,uCAAuC,CAAC;IAC1D;IACA,IAAID,UAAU,IAAI,IAAI,EAAE;MACtBjD,iBAAiB,CAACc,KAAK,GAAG,KAAK;MAC/BjC,oBAAoB,CAACsE,gBAAgB,CAACjD,QAAQ,CAACY,KAAK,EAAE,IAAI,CAAC;MAC3D;IACF;IACA4B,gBAAgB,CAACnC,gBAAgB,GAAG0C,UAAU;IAC9C;IACA;IACA;IACA;IACA;IACA;IACA1E,qBAAqB,CAACmE,gBAAuB,CAAC;IAC9C1C,iBAAiB,CAACc,KAAK,GAAG,IAAI;EAChC;EAEA,SAASsC,QAAQA,CAACzB,KAAwD,EAAE;IAC1E,SAAS;;IACT,IAAI,CAAC3B,iBAAiB,CAACc,KAAK,EAAE;MAC5B;IACF;IACA9B,eAAe,CAACQ,aAAa,EAAEmC,KAAK,CAAC;IACrC,MAAMC,QAAQ,GAAGF,eAAe,CAACC,KAAK,CAAC;IACvC7B,WAAW,CAACgB,KAAK,GAAGa,KAAK;IACzB,MAAMzB,QAAQ,GAAGD,sBAAsB,CAACa,KAAK,CAACZ,QAAQ;IACtDrB,oBAAoB,CAACwE,gBAAgB,CAACnD,QAAQ,EAAE0B,QAAQ,CAAC;EAC3D;EAEA,SAAS0B,KAAKA,CAAC3B,KAAwD,EAAE;IACvE,SAAS;;IACT,IAAI,CAAC3B,iBAAiB,CAACc,KAAK,EAAE;MAC5B;IACF;IAEA,MAAMyC,cAAc,GAAG,GAAG;IAC1B,MAAMN,UAAU,GAAGhD,sBAAsB,CAACa,KAAK,CAACP,gBAAgB;IAChE,MAAMiD,SAAS,GACb7B,KAAK,CAACG,YAAY,GAAGM,IAAI,CAACqB,GAAG,CAAC9B,KAAK,CAAC+B,SAAS,GAAGH,cAAc,EAAE,GAAG,CAAC;IACtE,MAAMI,SAAS,GACbhC,KAAK,CAACM,YAAY,GAAGG,IAAI,CAACqB,GAAG,CAAC9B,KAAK,CAACiC,SAAS,GAAGL,cAAc,EAAE,GAAG,CAAC;IACtE,MAAMM,iBAAiB,GAAGZ,UAAU,CAAClB,KAAK,GAAG,CAAC;IAC9C,MAAM+B,iBAAiB,GAAGb,UAAU,CAACf,MAAM,GAAG,CAAC;IAC/C,MAAM5B,oBAAoB,GAAGrB,0BAA0B,CACrDO,aAAa,EACbgE,SAAS,EACTK,iBAAiB,EACjBF,SAAS,EACTG,iBACF,CAAC;IACD,MAAM5D,QAAQ,GAAGD,sBAAsB,CAACa,KAAK,CAACZ,QAAQ;IACtDD,sBAAsB,CAACa,KAAK,CAACN,iBAAiB,GAAG,MAAM;MACrD3B,oBAAoB,CAACsE,gBAAgB,CAACjD,QAAQ,EAAEI,oBAAoB,CAAC;IACvE,CAAC;IACDL,sBAAsB,CAACa,KAAK,CAACR,oBAAoB,GAAGA,oBAAoB;IACxE;IACA;IACA;IACA;IACA;IACA;IACA9B,sBAAsB,CAACyB,sBAAsB,CAACa,KAAY,CAAC;EAC7D;EAEA,IAAIiD,UAAU,GAAG3F,OAAO,CAAC4F,GAAG,CAAC,CAAC,CAC3BvB,OAAO,CAACA,OAAO,CAAC,CAChBW,QAAQ,CAACA,QAAQ,CAAC,CAClBE,KAAK,CAACA,KAAK,CAAC;EAEf,IAAI7D,iBAAiB,EAAE;IACrB,MAAMwE,aAAa,GAAG,EAAE;IACxB,MAAMC,mBAAmB,GAAG,EAAE;IAC9B,IAAI1E,aAAa,KAAK,YAAY,EAAE;MAClCuE,UAAU,GAAGA,UAAU,CACpBI,aAAa,CAACD,mBAAmB,CAAC,CAClCE,OAAO,CAAC;QAAEC,IAAI,EAAE,CAAC;QAAEC,GAAG,EAAE,CAAC;QAAEvC,KAAK,EAAEkC;MAAc,CAAC,CAAC;IACvD,CAAC,MAAM,IAAIzE,aAAa,KAAK,WAAW,EAAE;MACxCuE,UAAU,GAAGA,UAAU,CACpBI,aAAa,CAAC,CAACD,mBAAmB,CAAC,CACnCE,OAAO,CAAC;QAAEG,KAAK,EAAE,CAAC;QAAED,GAAG,EAAE,CAAC;QAAEvC,KAAK,EAAEkC;MAAc,CAAC,CAAC;IACxD,CAAC,MAAM,IAAIzE,aAAa,KAAK,WAAW,EAAE;MACxCuE,UAAU,GAAGA,UAAU,CACpBS,aAAa,CAACN,mBAAmB,CAAC,CAClCE,OAAO,CAAC;QAAEE,GAAG,EAAE,CAAC;QAAEpC,MAAM,EAAElE,UAAU,CAACyG,GAAG,CAAC,QAAQ,CAAC,CAACvC,MAAM,GAAG;MAAI,CAAC,CAAC;MACrE;IACF,CAAC,MAAM,IAAI1C,aAAa,KAAK,SAAS,EAAE;MACtCuE,UAAU,GAAGA,UAAU,CACpBS,aAAa,CAAC,CAACN,mBAAmB,CAAC,CACnCE,OAAO,CAAC;QAAEM,MAAM,EAAE,CAAC;QAAExC,MAAM,EAAE+B;MAAc,CAAC,CAAC;IAClD;EACF;EACA,oBACEnG,KAAA,CAAA6G,aAAA,CAACxG,eAAe;IAACyG,OAAO,EAAEpF,aAAa,GAAGuE,UAAU,GAAG5E;EAAoB,GACxEG,QACc,CAAC;AAEtB,CAAC;AAED,eAAeD,qBAAqB","ignoreList":[]}
|
|
@@ -16,8 +16,7 @@ export const DefaultEvent = {
|
|
|
16
16
|
// and they are required to specify. This should be backward
|
|
17
17
|
// compatible unless they strictly parse the objects, which seems
|
|
18
18
|
// not likely. PointerType is present since 2.16.0, StylusData since 2.20.0
|
|
19
|
-
pointerType: PointerType.TOUCH
|
|
20
|
-
stylusData: undefined
|
|
19
|
+
pointerType: PointerType.TOUCH
|
|
21
20
|
};
|
|
22
21
|
export const DefaultScreenDimensions = {
|
|
23
22
|
width: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PointerType","ScreenTransition","DefaultEvent","absoluteX","absoluteY","handlerTag","numberOfPointers","state","translationX","translationY","velocityX","velocityY","x","y","pointerType","TOUCH","
|
|
1
|
+
{"version":3,"names":["PointerType","ScreenTransition","DefaultEvent","absoluteX","absoluteY","handlerTag","numberOfPointers","state","translationX","translationY","velocityX","velocityY","x","y","pointerType","TOUCH","DefaultScreenDimensions","width","height","pageX","pageY","AnimationForGesture","swipeRight","SwipeRight","swipeLeft","SwipeLeft","swipeDown","SwipeDown","swipeUp","SwipeUp","horizontalSwipe","Horizontal","verticalSwipe","Vertical","twoDimensionalSwipe","TwoDimensional"],"sourceRoot":"../../../src","sources":["gesture-handler/defaults.ts"],"mappings":"AAAA,SAGEA,WAAW,QACN,8BAA8B;AACrC,SAASC,gBAAgB,QAAQ,yBAAyB;AAE1D,OAAO,MAAMC,YAA+D,GAAG;EAC7EC,SAAS,EAAE,CAAC;EACZC,SAAS,EAAE,CAAC;EACZC,UAAU,EAAE,CAAC;EACbC,gBAAgB,EAAE,CAAC;EACnBC,KAAK,EAAE,CAAC;EACRC,YAAY,EAAE,CAAC;EACfC,YAAY,EAAE,CAAC;EACfC,SAAS,EAAE,CAAC;EACZC,SAAS,EAAE,CAAC;EACZC,CAAC,EAAE,CAAC;EACJC,CAAC,EAAE,CAAC;EAEJ;EACA;EACA;EACA;EACAC,WAAW,EAAEd,WAAW,CAACe;AAC3B,CAAC;AAED,OAAO,MAAMC,uBAAuB,GAAG;EACrCC,KAAK,EAAE,CAAC;EACRC,MAAM,EAAE,CAAC;EACTN,CAAC,EAAE,CAAC;EACJC,CAAC,EAAE,CAAC;EACJM,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,UAAU,EAAErB,gBAAgB,CAACsB,UAAU;EACvCC,SAAS,EAAEvB,gBAAgB,CAACwB,SAAS;EACrCC,SAAS,EAAEzB,gBAAgB,CAAC0B,SAAS;EACrCC,OAAO,EAAE3B,gBAAgB,CAAC4B,OAAO;EACjCC,eAAe,EAAE7B,gBAAgB,CAAC8B,UAAU;EAC5CC,aAAa,EAAE/B,gBAAgB,CAACgC,QAAQ;EACxCC,mBAAmB,EAAEjC,gBAAgB,CAACkC;AACxC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenGestureDetector.d.ts","sourceRoot":"","sources":["../../../src/gesture-handler/ScreenGestureDetector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAwBzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAIhD,QAAA,MAAM,qBAAqB,yJAQxB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ScreenGestureDetector.d.ts","sourceRoot":"","sources":["../../../src/gesture-handler/ScreenGestureDetector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAwBzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAIhD,QAAA,MAAM,qBAAqB,yJAQxB,oBAAoB,sBAsNtB,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/gesture-handler/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAE9B,MAAM,8BAA8B,CAAC;AAGtC,eAAO,MAAM,YAAY,EAAE,kBAAkB,CAAC,6BAA6B,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/gesture-handler/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAE9B,MAAM,8BAA8B,CAAC;AAGtC,eAAO,MAAM,YAAY,EAAE,kBAAkB,CAAC,6BAA6B,CAkB1E,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;CAOnC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;CAQ/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-screens",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.6.0-beta.0",
|
|
4
4
|
"description": "Native navigation primitives for your React Native app.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"submodules": "git submodule update --init --recursive && (cd react-navigation && yarn && yarn build && cd ../)",
|
|
@@ -107,9 +107,9 @@
|
|
|
107
107
|
"react-dom": "^18.2.0",
|
|
108
108
|
"react-native": "0.77.0-rc.6",
|
|
109
109
|
"react-native-builder-bob": "^0.23.2",
|
|
110
|
-
"react-native-gesture-handler": "^2.
|
|
111
|
-
"react-native-reanimated": "3.
|
|
112
|
-
"react-native-safe-area-context": "
|
|
110
|
+
"react-native-gesture-handler": "^2.22.0",
|
|
111
|
+
"react-native-reanimated": "3.16.7",
|
|
112
|
+
"react-native-safe-area-context": "5.1.0",
|
|
113
113
|
"react-native-windows": "^0.64.8",
|
|
114
114
|
"react-test-renderer": "^18.2.0",
|
|
115
115
|
"release-it": "^15.6.0",
|
|
@@ -159,7 +159,13 @@ const ScreenGestureDetector = ({
|
|
|
159
159
|
return;
|
|
160
160
|
}
|
|
161
161
|
transitionConfig.screenDimensions = screenSize;
|
|
162
|
-
|
|
162
|
+
// Gesture Handler added `pointerType` to event payload back in 2.16.0,
|
|
163
|
+
// see: https://github.com/software-mansion/react-native-gesture-handler/pull/2760
|
|
164
|
+
// and this causes type errors here. Proper solution would be to patch parameter types
|
|
165
|
+
// of this function in reanimated. This should not cause runtime errors as the payload
|
|
166
|
+
// has correct shape, only the types are incorrect.
|
|
167
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
168
|
+
startScreenTransition(transitionConfig as any);
|
|
163
169
|
canPerformUpdates.value = true;
|
|
164
170
|
}
|
|
165
171
|
|
|
@@ -201,7 +207,13 @@ const ScreenGestureDetector = ({
|
|
|
201
207
|
RNScreensTurboModule.finishTransition(stackTag, isTransitionCanceled);
|
|
202
208
|
};
|
|
203
209
|
screenTransitionConfig.value.isTransitionCanceled = isTransitionCanceled;
|
|
204
|
-
|
|
210
|
+
// Gesture Handler added `pointerType` to event payload back in 2.16.0,
|
|
211
|
+
// see: https://github.com/software-mansion/react-native-gesture-handler/pull/2760
|
|
212
|
+
// and this causes type errors here. Proper solution would be to patch parameter types
|
|
213
|
+
// of this function in reanimated. This should not cause runtime errors as the payload
|
|
214
|
+
// has correct shape, only the types are incorrect.
|
|
215
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
216
|
+
finishScreenTransition(screenTransitionConfig.value as any);
|
|
205
217
|
}
|
|
206
218
|
|
|
207
219
|
let panGesture = Gesture.Pan()
|
|
@@ -23,7 +23,6 @@ export const DefaultEvent: GestureUpdateEvent<PanGestureHandlerEventPayload> = {
|
|
|
23
23
|
// compatible unless they strictly parse the objects, which seems
|
|
24
24
|
// not likely. PointerType is present since 2.16.0, StylusData since 2.20.0
|
|
25
25
|
pointerType: PointerType.TOUCH,
|
|
26
|
-
stylusData: undefined,
|
|
27
26
|
};
|
|
28
27
|
|
|
29
28
|
export const DefaultScreenDimensions = {
|