react-native-screens 4.6.0-beta.0 → 4.6.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/ScreenModalFragment.kt +4 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +16 -7
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +5 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +1 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +7 -0
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetBehaviorExt.kt +6 -3
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetDialogRootView.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingView.kt +1 -2
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/GestureTransparentViewGroup.kt +0 -1
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/SheetUtils.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper.kt +6 -3
- package/android/src/main/jni/rnscreens.h +1 -0
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderSubviewViewGroup.kt +4 -3
- package/common/cpp/react/renderer/components/rnscreens/RNSFullWindowOverlayComponentDescriptor.h +17 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSFullWindowOverlayShadowNode.cpp +7 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSFullWindowOverlayShadowNode.h +35 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSFullWindowOverlayState.h +30 -0
- package/ios/RNSFullWindowOverlay.mm +10 -0
- package/ios/RNSScreenStackHeaderConfig.mm +6 -5
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +3 -1
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js +3 -1
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +25 -3
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +7 -6
- package/src/fabric/FullWindowOverlayNativeComponent.ts +3 -1
- package/src/types.tsx +25 -3
package/android/build.gradle
CHANGED
|
@@ -20,7 +20,7 @@ buildscript {
|
|
|
20
20
|
mavenCentral()
|
|
21
21
|
}
|
|
22
22
|
dependencies {
|
|
23
|
-
classpath('com.android.tools.build:gradle:
|
|
23
|
+
classpath('com.android.tools.build:gradle:8.2.1')
|
|
24
24
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${safeExtGet('kotlinVersion', rnsDefaultKotlinVersion)}"
|
|
25
25
|
classpath "com.diffplug.spotless:spotless-plugin-gradle:6.25.0"
|
|
26
26
|
}
|
|
@@ -74,8 +74,8 @@ open class CustomToolbar(
|
|
|
74
74
|
|
|
75
75
|
val contentInsetStart = if (navigationIcon != null) contentInsetStartWithNavigation else contentInsetStart
|
|
76
76
|
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
|
77
|
-
val width = r - l
|
|
78
|
-
val height = b - t
|
|
77
|
+
val width = r - l
|
|
78
|
+
val height = b - t
|
|
79
79
|
config.updateHeaderConfigState(width, height, contentInsetStart, contentInsetEnd)
|
|
80
80
|
} else {
|
|
81
81
|
// our children are already laid out
|
|
@@ -72,7 +72,10 @@ class ScreenModalFragment :
|
|
|
72
72
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
|
73
73
|
configureDialogAndBehaviour()
|
|
74
74
|
|
|
75
|
-
val reactEventDispatcher =
|
|
75
|
+
val reactEventDispatcher =
|
|
76
|
+
checkNotNull(
|
|
77
|
+
screen.reactEventDispatcher,
|
|
78
|
+
) { "[RNScreens] No ReactEventDispatcher attached to screen while creating modal fragment" }
|
|
76
79
|
val rootView = BottomSheetDialogRootView(screen.reactContext, reactEventDispatcher)
|
|
77
80
|
|
|
78
81
|
rootView.addView(screen.recycle())
|
|
@@ -248,7 +248,7 @@ class ScreenStack(
|
|
|
248
248
|
|
|
249
249
|
if (shouldUseOpenAnimation &&
|
|
250
250
|
newTop != null &&
|
|
251
|
-
needsDrawReordering(newTop) &&
|
|
251
|
+
needsDrawReordering(newTop, stackAnimation) &&
|
|
252
252
|
visibleBottom == null
|
|
253
253
|
) {
|
|
254
254
|
// When using an open animation in which two screens overlap (eg. fade_from_bottom or
|
|
@@ -258,6 +258,7 @@ class ScreenStack(
|
|
|
258
258
|
// appears on top of the previous one. You can read more about in the comment
|
|
259
259
|
// for the code we use to change that behavior:
|
|
260
260
|
// https://github.com/airbnb/native-navigation/blob/9cf50bf9b751b40778f473f3b19fcfe2c4d40599/lib/android/src/main/java/com/airbnb/android/react/navigation/ScreenCoordinatorLayout.java#L18
|
|
261
|
+
// Note: This should not be set in case there is only a single screen in stack or animation `none` is used. Atm needsDrawReordering implementation guards that assuming that first screen on stack uses `NONE` animation.
|
|
261
262
|
isDetachingCurrentScreen = true
|
|
262
263
|
}
|
|
263
264
|
|
|
@@ -426,14 +427,22 @@ class ScreenStack(
|
|
|
426
427
|
companion object {
|
|
427
428
|
const val TAG = "ScreenStack"
|
|
428
429
|
|
|
429
|
-
private fun needsDrawReordering(
|
|
430
|
+
private fun needsDrawReordering(
|
|
431
|
+
fragmentWrapper: ScreenFragmentWrapper,
|
|
432
|
+
resolvedStackAnimation: StackAnimation?,
|
|
433
|
+
): Boolean {
|
|
434
|
+
val stackAnimation = if (resolvedStackAnimation != null) resolvedStackAnimation else fragmentWrapper.screen.stackAnimation
|
|
430
435
|
// On Android sdk 33 and above the animation is different and requires draw reordering.
|
|
431
436
|
// For React Native 0.70 and lower versions, `Build.VERSION_CODES.TIRAMISU` is not defined yet.
|
|
432
437
|
// Hence, we're comparing numerical version here.
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
+
return (
|
|
439
|
+
Build.VERSION.SDK_INT >= 33 ||
|
|
440
|
+
stackAnimation === StackAnimation.SLIDE_FROM_BOTTOM ||
|
|
441
|
+
stackAnimation === StackAnimation.FADE_FROM_BOTTOM ||
|
|
442
|
+
stackAnimation === StackAnimation.IOS_FROM_RIGHT ||
|
|
443
|
+
stackAnimation === StackAnimation.IOS_FROM_LEFT
|
|
444
|
+
) &&
|
|
445
|
+
stackAnimation !== StackAnimation.NONE
|
|
446
|
+
}
|
|
438
447
|
}
|
|
439
448
|
}
|
|
@@ -478,6 +478,11 @@ class ScreenStackFragment :
|
|
|
478
478
|
screen.background = shape
|
|
479
479
|
}
|
|
480
480
|
|
|
481
|
+
override fun onStart() {
|
|
482
|
+
lastFocusedChild?.requestFocus()
|
|
483
|
+
super.onStart()
|
|
484
|
+
}
|
|
485
|
+
|
|
481
486
|
override fun onStop() {
|
|
482
487
|
if (DeviceUtils.isPlatformAndroidTV(context)) {
|
|
483
488
|
lastFocusedChild = findLastFocusedChild()
|
|
@@ -157,6 +157,7 @@ class ScreenStackHeaderConfigViewManager :
|
|
|
157
157
|
config.setHideBackButton(hideBackButton)
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
+
@Deprecated("For apps targeting SDK 35 or above edge-to-edge is enabled by default.")
|
|
160
161
|
@ReactProp(name = "topInsetEnabled")
|
|
161
162
|
override fun setTopInsetEnabled(
|
|
162
163
|
config: ScreenStackHeaderConfig,
|
|
@@ -44,7 +44,7 @@ class ScreenStackHeaderSubviewManager :
|
|
|
44
44
|
override fun updateState(
|
|
45
45
|
view: ScreenStackHeaderSubview,
|
|
46
46
|
props: ReactStylesDiffMap?,
|
|
47
|
-
stateWrapper: StateWrapper
|
|
47
|
+
stateWrapper: StateWrapper?,
|
|
48
48
|
): Any? {
|
|
49
49
|
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
|
50
50
|
view.setStateWrapper(stateWrapper)
|
|
@@ -192,6 +192,10 @@ open class ScreenViewManager :
|
|
|
192
192
|
view.isStatusBarAnimated = animated
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
+
@Deprecated(
|
|
196
|
+
"For apps targeting SDK 35 or above this prop has no effect. " +
|
|
197
|
+
"Since the edge-to-edge is enabled by default the color is always translucent.",
|
|
198
|
+
)
|
|
195
199
|
@ReactProp(name = "statusBarColor", customType = "Color")
|
|
196
200
|
override fun setStatusBarColor(
|
|
197
201
|
view: Screen,
|
|
@@ -208,6 +212,7 @@ open class ScreenViewManager :
|
|
|
208
212
|
view.statusBarStyle = statusBarStyle
|
|
209
213
|
}
|
|
210
214
|
|
|
215
|
+
@Deprecated("For apps targeting SDK 35 or above edge-to-edge is enabled by default and will be enforced in the future.")
|
|
211
216
|
@ReactProp(name = "statusBarTranslucent")
|
|
212
217
|
override fun setStatusBarTranslucent(
|
|
213
218
|
view: Screen,
|
|
@@ -224,6 +229,7 @@ open class ScreenViewManager :
|
|
|
224
229
|
view.isStatusBarHidden = statusBarHidden
|
|
225
230
|
}
|
|
226
231
|
|
|
232
|
+
@Deprecated("For apps targeting SDK 35 or above this prop has no effect")
|
|
227
233
|
@ReactProp(name = "navigationBarColor", customType = "Color")
|
|
228
234
|
override fun setNavigationBarColor(
|
|
229
235
|
view: Screen,
|
|
@@ -232,6 +238,7 @@ open class ScreenViewManager :
|
|
|
232
238
|
view.navigationBarColor = navigationBarColor
|
|
233
239
|
}
|
|
234
240
|
|
|
241
|
+
@Deprecated("For apps targeting SDK 35 or above edge-to-edge is enabled by default")
|
|
235
242
|
@ReactProp(name = "navigationBarTranslucent")
|
|
236
243
|
override fun setNavigationBarTranslucent(
|
|
237
244
|
view: Screen,
|
|
@@ -3,7 +3,10 @@ package com.swmansion.rnscreens.bottomsheet
|
|
|
3
3
|
import android.view.View
|
|
4
4
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
|
5
5
|
|
|
6
|
-
internal fun <T : View> BottomSheetBehavior<T>.useSingleDetent(
|
|
6
|
+
internal fun <T : View> BottomSheetBehavior<T>.useSingleDetent(
|
|
7
|
+
height: Int? = null,
|
|
8
|
+
forceExpandedState: Boolean = true,
|
|
9
|
+
): BottomSheetBehavior<T> {
|
|
7
10
|
this.skipCollapsed = true
|
|
8
11
|
this.isFitToContents = true
|
|
9
12
|
if (forceExpandedState) {
|
|
@@ -16,7 +19,7 @@ internal fun <T : View> BottomSheetBehavior<T>.useSingleDetent(height: Int? = nu
|
|
|
16
19
|
internal fun <T : View> BottomSheetBehavior<T>.useTwoDetents(
|
|
17
20
|
@BottomSheetBehavior.StableState state: Int? = null,
|
|
18
21
|
firstHeight: Int? = null,
|
|
19
|
-
secondHeight: Int? = null
|
|
22
|
+
secondHeight: Int? = null,
|
|
20
23
|
): BottomSheetBehavior<T> {
|
|
21
24
|
skipCollapsed = false
|
|
22
25
|
isFitToContents = true
|
|
@@ -30,7 +33,7 @@ internal fun <T : View> BottomSheetBehavior<T>.useThreeDetents(
|
|
|
30
33
|
@BottomSheetBehavior.StableState state: Int? = null,
|
|
31
34
|
firstHeight: Int? = null,
|
|
32
35
|
halfExpandedRatio: Float? = null,
|
|
33
|
-
expandedOffsetFromTop: Int? = null
|
|
36
|
+
expandedOffsetFromTop: Int? = null,
|
|
34
37
|
): BottomSheetBehavior<T> {
|
|
35
38
|
skipCollapsed = false
|
|
36
39
|
isFitToContents = false
|
package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetDialogRootView.kt
CHANGED
|
@@ -37,7 +37,7 @@ class BottomSheetDialogRootView(
|
|
|
37
37
|
if (changed) {
|
|
38
38
|
// This view is used right now only in ScreenModalFragment, where it is injected
|
|
39
39
|
// to view hierarchy as a parent of a Screen.
|
|
40
|
-
assert(childCount == 1) { "[RNScreens] Expected only a single child view under $
|
|
40
|
+
assert(childCount == 1) { "[RNScreens] Expected only a single child view under $TAG, received: $childCount" }
|
|
41
41
|
getChildAt(0).layout(l, t, r, b)
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -57,8 +57,7 @@ class DimmingView(
|
|
|
57
57
|
y: Float,
|
|
58
58
|
) = blockGestures
|
|
59
59
|
|
|
60
|
-
override fun getPointerEvents(): PointerEvents =
|
|
61
|
-
if (blockGestures) PointerEvents.AUTO else PointerEvents.NONE
|
|
60
|
+
override fun getPointerEvents(): PointerEvents = if (blockGestures) PointerEvents.AUTO else PointerEvents.NONE
|
|
62
61
|
|
|
63
62
|
companion object {
|
|
64
63
|
const val TAG = "DimmingView"
|
|
@@ -129,7 +129,7 @@ object SheetUtils {
|
|
|
129
129
|
|
|
130
130
|
fun Screen.isSheetFitToContents(): Boolean =
|
|
131
131
|
stackPresentation === Screen.StackPresentation.FORM_SHEET &&
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
sheetDetents.count() == 1 &&
|
|
133
|
+
sheetDetents.first() == Screen.SHEET_FIT_TO_CONTENTS
|
|
134
134
|
|
|
135
135
|
fun Screen.usesFormSheetPresentation(): Boolean = stackPresentation === Screen.StackPresentation.FORM_SHEET
|
|
@@ -82,7 +82,9 @@ internal class ScreenDummyLayoutHelper(
|
|
|
82
82
|
// We need to use activity here, as react context does not have theme attributes required by
|
|
83
83
|
// AppBarLayout attached leading to crash.
|
|
84
84
|
val contextWithTheme =
|
|
85
|
-
requireNotNull(reactContext.currentActivity) {
|
|
85
|
+
requireNotNull(reactContext.currentActivity) {
|
|
86
|
+
"[RNScreens] Attempt to use context detached from activity. This could happen only due to race-condition."
|
|
87
|
+
}
|
|
86
88
|
|
|
87
89
|
synchronized(this) {
|
|
88
90
|
// The layout could have been initialised when this thread waited for access to critical section.
|
|
@@ -166,7 +168,7 @@ internal class ScreenDummyLayoutHelper(
|
|
|
166
168
|
// is still null at this execution point. We don't wanna crash in such case, thus returning zeroed height.
|
|
167
169
|
Log.e(
|
|
168
170
|
TAG,
|
|
169
|
-
"[RNScreens] Failed to late-init layout while computing header height. This is most likely a race-condition-bug in react-native-screens, please file an issue at https://github.com/software-mansion/react-native-screens/issues"
|
|
171
|
+
"[RNScreens] Failed to late-init layout while computing header height. This is most likely a race-condition-bug in react-native-screens, please file an issue at https://github.com/software-mansion/react-native-screens/issues",
|
|
170
172
|
)
|
|
171
173
|
return 0.0f
|
|
172
174
|
}
|
|
@@ -214,7 +216,8 @@ internal class ScreenDummyLayoutHelper(
|
|
|
214
216
|
private fun requireReactContext(lazyMessage: (() -> Any)? = null): ReactApplicationContext =
|
|
215
217
|
requireNotNull(
|
|
216
218
|
reactContextRef.get(),
|
|
217
|
-
lazyMessage ?: { "[RNScreens] Attempt to require missing react context" }
|
|
219
|
+
lazyMessage ?: { "[RNScreens] Attempt to require missing react context" },
|
|
220
|
+
)
|
|
218
221
|
|
|
219
222
|
private fun requireActivity(): Activity =
|
|
220
223
|
requireNotNull(requireReactContext().currentActivity) {
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
#include <react/renderer/components/rnscreens/RNSModalScreenComponentDescriptor.h>
|
|
21
21
|
#include <react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h>
|
|
22
22
|
#include <react/renderer/components/rnscreens/RNSScreenStackHeaderConfigComponentDescriptor.h>
|
|
23
|
+
#include <react/renderer/components/rnscreens/RNSFullWindowOverlayComponentDescriptor.h>
|
|
23
24
|
|
|
24
25
|
namespace facebook {
|
|
25
26
|
namespace react {
|
package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderSubviewViewGroup.kt
CHANGED
|
@@ -4,8 +4,9 @@ import android.content.Context
|
|
|
4
4
|
import android.view.ViewGroup
|
|
5
5
|
import com.facebook.react.uimanager.StateWrapper
|
|
6
6
|
|
|
7
|
-
abstract class FabricEnabledHeaderSubviewViewGroup(
|
|
8
|
-
|
|
7
|
+
abstract class FabricEnabledHeaderSubviewViewGroup(
|
|
8
|
+
context: Context?,
|
|
9
|
+
) : ViewGroup(context) {
|
|
9
10
|
fun setStateWrapper(wrapper: StateWrapper?) = Unit
|
|
10
11
|
|
|
11
12
|
// Fabric only
|
|
@@ -13,6 +14,6 @@ abstract class FabricEnabledHeaderSubviewViewGroup(context: Context?): ViewGroup
|
|
|
13
14
|
width: Int,
|
|
14
15
|
height: Int,
|
|
15
16
|
offsetX: Int,
|
|
16
|
-
offsetY: Int
|
|
17
|
+
offsetY: Int,
|
|
17
18
|
) = Unit
|
|
18
19
|
}
|
package/common/cpp/react/renderer/components/rnscreens/RNSFullWindowOverlayComponentDescriptor.h
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#ifdef ANDROID
|
|
4
|
+
#include <fbjni/fbjni.h>
|
|
5
|
+
#endif // ANDROID
|
|
6
|
+
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
|
7
|
+
#include "RNSFullWindowOverlayShadowNode.h"
|
|
8
|
+
|
|
9
|
+
namespace facebook::react {
|
|
10
|
+
|
|
11
|
+
class RNSFullWindowOverlayComponentDescriptor final
|
|
12
|
+
: public ConcreteComponentDescriptor<RNSFullWindowOverlayShadowNode> {
|
|
13
|
+
public:
|
|
14
|
+
using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <jsi/jsi.h>
|
|
4
|
+
#include <react/renderer/components/rnscreens/EventEmitters.h>
|
|
5
|
+
#include <react/renderer/components/rnscreens/Props.h>
|
|
6
|
+
#include <react/renderer/components/view/ConcreteViewShadowNode.h>
|
|
7
|
+
#include <react/renderer/core/LayoutContext.h>
|
|
8
|
+
#include "RNSFullWindowOverlayState.h"
|
|
9
|
+
|
|
10
|
+
namespace facebook::react {
|
|
11
|
+
|
|
12
|
+
JSI_EXPORT extern const char RNSFullWindowOverlayComponentName[];
|
|
13
|
+
|
|
14
|
+
using ConcreteViewShadowNodeSuperType = ConcreteViewShadowNode<
|
|
15
|
+
RNSFullWindowOverlayComponentName,
|
|
16
|
+
RNSFullWindowOverlayProps,
|
|
17
|
+
RNSFullWindowOverlayEventEmitter,
|
|
18
|
+
RNSFullWindowOverlayState>;
|
|
19
|
+
|
|
20
|
+
class JSI_EXPORT RNSFullWindowOverlayShadowNode final
|
|
21
|
+
: public ConcreteViewShadowNodeSuperType {
|
|
22
|
+
public:
|
|
23
|
+
using ConcreteViewShadowNode::ConcreteViewShadowNode;
|
|
24
|
+
using StateData = ConcreteViewShadowNode::ConcreteStateData;
|
|
25
|
+
|
|
26
|
+
#if !defined(ANDROID)
|
|
27
|
+
static ShadowNodeTraits BaseTraits() {
|
|
28
|
+
auto traits = ConcreteViewShadowNodeSuperType::BaseTraits();
|
|
29
|
+
traits.set(ShadowNodeTraits::Trait::RootNodeKind);
|
|
30
|
+
return traits;
|
|
31
|
+
}
|
|
32
|
+
#endif
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#if defined(ANDROID)
|
|
4
|
+
#include <folly/dynamic.h>
|
|
5
|
+
#include <react/renderer/mapbuffer/MapBuffer.h>
|
|
6
|
+
#include <react/renderer/mapbuffer/MapBufferBuilder.h>
|
|
7
|
+
#endif // ANDROID
|
|
8
|
+
|
|
9
|
+
#include <react/renderer/core/graphicsConversions.h>
|
|
10
|
+
#include <react/renderer/graphics/Float.h>
|
|
11
|
+
|
|
12
|
+
namespace facebook::react {
|
|
13
|
+
|
|
14
|
+
class JSI_EXPORT RNSFullWindowOverlayState final {
|
|
15
|
+
public:
|
|
16
|
+
using Shared = std::shared_ptr<const RNSFullWindowOverlayState>;
|
|
17
|
+
|
|
18
|
+
RNSFullWindowOverlayState() = default;
|
|
19
|
+
|
|
20
|
+
#if defined(ANDROID)
|
|
21
|
+
RNSFullWindowOverlayState(
|
|
22
|
+
const RNSFullWindowOverlayState &previousState,
|
|
23
|
+
folly::dynamic data) {}
|
|
24
|
+
folly::dynamic getDynamic() const {
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
#endif
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
} // namespace facebook::react
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#import <react/renderer/components/rnscreens/ComponentDescriptors.h>
|
|
11
11
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
12
12
|
#import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
|
|
13
|
+
#import <rnscreens/RNSFullWindowOverlayComponentDescriptor.h>
|
|
13
14
|
#else
|
|
14
15
|
#import <React/RCTTouchHandler.h>
|
|
15
16
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -205,9 +206,18 @@ RNS_IGNORE_SUPER_CALL_BEGIN
|
|
|
205
206
|
oldLayoutMetrics:(react::LayoutMetrics const &)oldLayoutMetrics
|
|
206
207
|
{
|
|
207
208
|
CGRect frame = RCTCGRectFromRect(layoutMetrics.frame);
|
|
209
|
+
|
|
210
|
+
// Due to view flattening on new architecture there are situations
|
|
211
|
+
// when we receive frames with origin different from (0, 0).
|
|
212
|
+
// We account for this frame manipulation in shadow node by setting
|
|
213
|
+
// RootNodeKind trait for the shadow node making state consistent
|
|
214
|
+
// between Host & Shadow Tree
|
|
215
|
+
frame.origin = CGPointZero;
|
|
216
|
+
|
|
208
217
|
_reactFrame = frame;
|
|
209
218
|
[_container setFrame:frame];
|
|
210
219
|
}
|
|
220
|
+
|
|
211
221
|
RNS_IGNORE_SUPER_CALL_END
|
|
212
222
|
|
|
213
223
|
#else
|
|
@@ -883,9 +883,6 @@ RNS_IGNORE_SUPER_CALL_BEGIN
|
|
|
883
883
|
[self insertReactSubview:(RNSScreenStackHeaderSubview *)childComponentView atIndex:index];
|
|
884
884
|
|
|
885
885
|
_addedReactSubviewsInCurrentTransaction = true;
|
|
886
|
-
|
|
887
|
-
// TODO: This could be called only once per transaction.
|
|
888
|
-
[self updateViewControllerIfNeeded];
|
|
889
886
|
}
|
|
890
887
|
|
|
891
888
|
- (void)unmountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
|
|
@@ -909,7 +906,9 @@ RNS_IGNORE_SUPER_CALL_BEGIN
|
|
|
909
906
|
- (void)mountingTransactionDidMount:(const facebook::react::MountingTransaction &)transaction
|
|
910
907
|
withSurfaceTelemetry:(const facebook::react::SurfaceTelemetry &)surfaceTelemetry
|
|
911
908
|
{
|
|
912
|
-
if (_addedReactSubviewsInCurrentTransaction
|
|
909
|
+
if (_addedReactSubviewsInCurrentTransaction) {
|
|
910
|
+
[self updateViewControllerIfNeeded];
|
|
911
|
+
|
|
913
912
|
// This call is made for the sake of https://github.com/software-mansion/react-native-screens/pull/2466.
|
|
914
913
|
// In case header subview is added **after initial screen render** the system positions it correctly,
|
|
915
914
|
// however `viewDidLayoutSubviews` is not called on `RNSNavigationController` and updated frame sizes of the
|
|
@@ -917,7 +916,9 @@ RNS_IGNORE_SUPER_CALL_BEGIN
|
|
|
917
916
|
// Sending state update to ShadowTree from here is not enough, because native layout has not yet
|
|
918
917
|
// happened after the child had been added. Requesting layout on navigation bar does not trigger layout callbacks
|
|
919
918
|
// either, however doing so on main view of navigation controller does the trick.
|
|
920
|
-
|
|
919
|
+
if (self.shouldHeaderBeVisible) {
|
|
920
|
+
[self layoutNavigationControllerView];
|
|
921
|
+
}
|
|
921
922
|
}
|
|
922
923
|
_addedReactSubviewsInCurrentTransaction = false;
|
|
923
924
|
}
|
|
@@ -7,5 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
var _default = exports.default = (0, _codegenNativeComponent.default)('RNSFullWindowOverlay', {
|
|
10
|
+
var _default = exports.default = (0, _codegenNativeComponent.default)('RNSFullWindowOverlay', {
|
|
11
|
+
interfaceOnly: true
|
|
12
|
+
});
|
|
11
13
|
//# sourceMappingURL=FullWindowOverlayNativeComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object","defineProperty","exports","value","default","_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","_default","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["fabric/FullWindowOverlayNativeComponent.ts"],"mappings":";AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA;AAEb,IAAAC,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAJ,OAAA,EAAAI,CAAA;AAAA,IAAAE,QAAA,GAAAR,OAAA,CAAAE,OAAA,GAK9E,IAAAO,+BAAsB,EAAc,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","default","_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","_default","codegenNativeComponent","interfaceOnly"],"sourceRoot":"../../../src","sources":["fabric/FullWindowOverlayNativeComponent.ts"],"mappings":";AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA;AAEb,IAAAC,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAJ,OAAA,EAAAI,CAAA;AAAA,IAAAE,QAAA,GAAAR,OAAA,CAAAE,OAAA,GAK9E,IAAAO,+BAAsB,EAAc,sBAAsB,EAAE;EACzEC,aAAa,EAAE;AACjB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
4
|
-
export default codegenNativeComponent('RNSFullWindowOverlay', {
|
|
4
|
+
export default codegenNativeComponent('RNSFullWindowOverlay', {
|
|
5
|
+
interfaceOnly: true
|
|
6
|
+
});
|
|
5
7
|
//# sourceMappingURL=FullWindowOverlayNativeComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../../src","sources":["fabric/FullWindowOverlayNativeComponent.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAOA,sBAAsB,MAAM,yDAAyD;AAK5F,eAAeA,sBAAsB,CAAc,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"names":["codegenNativeComponent","interfaceOnly"],"sourceRoot":"../../../src","sources":["fabric/FullWindowOverlayNativeComponent.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAOA,sBAAsB,MAAM,yDAAyD;AAK5F,eAAeA,sBAAsB,CAAc,sBAAsB,EAAE;EACzEC,aAAa,EAAE;AACjB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullWindowOverlayNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/fabric/FullWindowOverlayNativeComponent.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,UAAU,WAAY,SAAQ,SAAS;CAAG;;AAE1C,
|
|
1
|
+
{"version":3,"file":"FullWindowOverlayNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/fabric/FullWindowOverlayNativeComponent.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,UAAU,WAAY,SAAQ,SAAS;CAAG;;AAE1C,wBAEG"}
|
|
@@ -117,12 +117,22 @@ export interface ScreenProps extends ViewProps {
|
|
|
117
117
|
* Sets the navigation bar color. Defaults to initial status bar color.
|
|
118
118
|
*
|
|
119
119
|
* @platform android
|
|
120
|
+
*
|
|
121
|
+
* @deprecated For all apps targeting Android SDK 35 or above this prop has no effect and is subject to removal in the future.
|
|
122
|
+
* For SDK below 35 this works only with specific app setup.
|
|
123
|
+
* This props is subject to removal in the future.
|
|
124
|
+
* See: https://developer.android.com/reference/android/view/Window#setNavigationBarColor(int)
|
|
120
125
|
*/
|
|
121
126
|
navigationBarColor?: ColorValue;
|
|
122
127
|
/**
|
|
123
128
|
* Boolean indicating whether the content should be visible behind the navigation bar. Defaults to `false`.
|
|
124
129
|
*
|
|
125
130
|
* @platform android
|
|
131
|
+
*
|
|
132
|
+
* @deprecated For all apps targeting Android SDK 35 or above edge-to-edge is enabled by default.
|
|
133
|
+
* We expect that in future SDKs this option will be enforced.
|
|
134
|
+
* This prop is subject to removal in the future.
|
|
135
|
+
* See: https://developer.android.com/about/versions/15/behavior-changes-15#window-insets
|
|
126
136
|
*/
|
|
127
137
|
navigationBarTranslucent?: boolean;
|
|
128
138
|
/**
|
|
@@ -334,13 +344,13 @@ export interface ScreenProps extends ViewProps {
|
|
|
334
344
|
/**
|
|
335
345
|
* How should the screen be presented.
|
|
336
346
|
* The following values are currently supported:
|
|
337
|
-
* - "push" – the new screen will be pushed onto a stack which on iOS means that the default animation will be slide from the side, the animation on Android may vary depending on the OS version and theme.
|
|
338
|
-
* - "modal" – the new screen will be presented modally.
|
|
347
|
+
* - "push" – the new screen will be pushed onto a stack which on iOS means that the default animation will be slide from the side, the animation on Android may vary depending on the OS version and theme. Supports nested stack rendering.
|
|
348
|
+
* - "modal" – the new screen will be presented modally. On iOS it'll use `UIModalPresentationStyleAutomatic`. On Android this is equivalent to `push` presentation type. Supports nested stack rendering.
|
|
339
349
|
* - "transparentModal" – the new screen will be presented modally but in addition the second to last screen will remain attached to the stack container such that if the top screen is non opaque the content below can still be seen. If "modal" is used instead the below screen will get unmounted as soon as the transition ends.
|
|
340
350
|
* - "containedModal" – will use "UIModalPresentationCurrentContext" modal style on iOS and will fallback to "modal" on Android.
|
|
341
351
|
* - "containedTransparentModal" – will use "UIModalPresentationOverCurrentContext" modal style on iOS and will fallback to "transparentModal" on Android.
|
|
342
352
|
* - "fullScreenModal" – will use "UIModalPresentationFullScreen" modal style on iOS and will fallback to "modal" on Android.
|
|
343
|
-
* - "formSheet" – will use "UIModalPresentationFormSheet" modal style on iOS
|
|
353
|
+
* - "formSheet" – will use "UIModalPresentationFormSheet" modal style on iOS, on Android this will use Material BottomSheetBehaviour. On Android neested stack rendering is not yet supported.
|
|
344
354
|
*/
|
|
345
355
|
stackPresentation?: StackPresentationTypes;
|
|
346
356
|
/**
|
|
@@ -351,6 +361,11 @@ export interface ScreenProps extends ViewProps {
|
|
|
351
361
|
* Sets the status bar color (similar to the `StatusBar` component). Defaults to initial status bar color.
|
|
352
362
|
*
|
|
353
363
|
* @platform android
|
|
364
|
+
*
|
|
365
|
+
* @deprecated For all apps targeting Android SDK 35 or above this prop has no effect.
|
|
366
|
+
* For SDK below 35 this works only with specific app setup.
|
|
367
|
+
* This prop is subject to removal in the future.
|
|
368
|
+
* See: https://developer.android.com/reference/android/view/Window#setStatusBarColor(int)
|
|
354
369
|
*/
|
|
355
370
|
statusBarColor?: ColorValue;
|
|
356
371
|
/**
|
|
@@ -365,6 +380,9 @@ export interface ScreenProps extends ViewProps {
|
|
|
365
380
|
* Sets the translucency of the status bar. Defaults to `false`.
|
|
366
381
|
*
|
|
367
382
|
* @platform android
|
|
383
|
+
*
|
|
384
|
+
* @deprecated For all apps targeting Android SDK 35 or above edge-to-edge mode on Android is enabled by default and this point loses relevance.
|
|
385
|
+
* It is expected that the edge-to-edge will be enforced in future SDKs: https://developer.android.com/about/versions/15/behavior-changes-15#ux.
|
|
368
386
|
*/
|
|
369
387
|
statusBarTranslucent?: boolean;
|
|
370
388
|
/**
|
|
@@ -564,6 +582,10 @@ export interface ScreenStackHeaderConfigProps extends ViewProps {
|
|
|
564
582
|
* header cannot be opaque.
|
|
565
583
|
*
|
|
566
584
|
* @platform android
|
|
585
|
+
*
|
|
586
|
+
* @deprecated For apps targeting Android SDK 35 or above edge-to-edge mode is enabled by default
|
|
587
|
+
* and it is expected that the edge-to-edge will be enforced in future SDKs - therefore this prop
|
|
588
|
+
* loses its relevance and will be removed at some point in the future.
|
|
567
589
|
*/
|
|
568
590
|
topInsetEnabled?: boolean;
|
|
569
591
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,SAAS,EACT,IAAI,EACJ,aAAa,EACb,uBAAuB,EACvB,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AACtE,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,OAAO,GACP,kBAAkB,GAClB,gBAAgB,GAChB,2BAA2B,GAC3B,iBAAiB,GACjB,WAAW,CAAC;AAChB,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,MAAM,GACN,kBAAkB,GAClB,MAAM,GACN,MAAM,GACN,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,CAAC;AACpB,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,YAAY,GACZ,OAAO,GACP,MAAM,GACN,SAAS,GACT,WAAW,GACX,yBAAyB,GACzB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,sBAAsB,GACtB,8BAA8B,GAC9B,yBAAyB,GACzB,qBAAqB,GACrB,0BAA0B,GAC1B,2BAA2B,GAC3B,6BAA6B,GAC7B,wBAAwB,GACxB,oBAAoB,GACpB,yBAAyB,GACzB,0BAA0B,CAAC;AAC/B,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,CAAC;AAChD,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAC;AAC5D,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,KAAK,GACL,UAAU,GACV,aAAa,GACb,eAAe,GACf,WAAW,GACX,gBAAgB,GAChB,iBAAiB,CAAC;AACtB,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,OAAO,GACP,MAAM,GACN,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,MAAM,2BAA2B,GAAG;IACxC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpE,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACnE;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;OAQG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,2BAA2B,CAAC;IACtD;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC;;;;;;;;;OASG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC5D,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC/D;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAC1E;;OAEG;IACH,oBAAoB,CAAC,EAAE,CACrB,CAAC,EAAE,oBAAoB,CAAC,2BAA2B,CAAC,KACjD,IAAI,CAAC;IACV;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC1D;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IACvC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CACzB,CAAC,EAAE,oBAAoB,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,KAC9C,IAAI,CAAC;IACV;;OAEG;IACH,oBAAoB,CAAC,EAAE,CACrB,CAAC,EAAE,oBAAoB,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,KAC1D,IAAI,CAAC;IACV;;OAEG;IACH,oBAAoB,CAAC,EAAE,CACrB,CAAC,EAAE,oBAAoB,CAAC,2BAA2B,CAAC,KACjD,IAAI,CAAC;IACV;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAChE;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACnE;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IAC9E;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,+BAA+B,CAAC,EAC5B,MAAM,GACN,MAAM,GACN,MAAM,GACN,QAAQ,GACR,OAAO,GACP,KAAK,CAAC;IACV;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1C;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/C;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACxD;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;CAC9C;AAED,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,sBAAsB,EAAE,CACtB,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,KACnE,IAAI,CAAC;CACX;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS,EAAE,YAAY;IAC/D,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACzE,GAAG,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,4BAA6B,SAAQ,SAAS;IAC7D;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,yBAAyB,CAAC,EAAE,UAAU,CAAC;IACvC;;;OAGG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAEzC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,CAAC;IAC/D;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAClD;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC1D;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAEvE;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;IAE1E;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC3D;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;OAEG;IACH,mBAAmB,CAAC,EAAE,CACpB,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAC7C,IAAI,CAAC;IACV;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,WAAW,GACX,SAAS,GACT,WAAW,GACX,eAAe,GACf,iBAAiB,GACjB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,CACd,KAAK,EAAE,6BAA6B,EACpC,UAAU,EAAE,kBAAkB,KAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,mBAAmB,EAAE,CACnB,KAAK,EAAE,6BAA6B,EACpC,UAAU,EAAE,kBAAkB,KAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB,EAAE,KAAK,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;CACtE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-screens",
|
|
3
|
-
"version": "4.6.0-beta.
|
|
3
|
+
"version": "4.6.0-beta.1",
|
|
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 ../)",
|
|
@@ -80,10 +80,10 @@
|
|
|
80
80
|
"@react-native-community/cli": "15.0.1",
|
|
81
81
|
"@react-native-community/cli-platform-android": "15.0.1",
|
|
82
82
|
"@react-native-community/cli-platform-ios": "15.0.1",
|
|
83
|
-
"@react-native/babel-preset": "0.77.0-rc.
|
|
84
|
-
"@react-native/eslint-config": "0.77.0-rc.
|
|
85
|
-
"@react-native/metro-config": "0.77.0-rc.
|
|
86
|
-
"@react-native/typescript-config": "0.77.0-rc.
|
|
83
|
+
"@react-native/babel-preset": "0.77.0-rc.7",
|
|
84
|
+
"@react-native/eslint-config": "0.77.0-rc.7",
|
|
85
|
+
"@react-native/metro-config": "0.77.0-rc.7",
|
|
86
|
+
"@react-native/typescript-config": "0.77.0-rc.7",
|
|
87
87
|
"@react-navigation/native": "^5.8.0",
|
|
88
88
|
"@react-navigation/stack": "^5.10.0",
|
|
89
89
|
"@types/jest": "^29.5.13",
|
|
@@ -95,6 +95,7 @@
|
|
|
95
95
|
"eslint": "^8.56.0",
|
|
96
96
|
"eslint-config-prettier": "^8.10.0",
|
|
97
97
|
"eslint-config-standard": "^17.1.0",
|
|
98
|
+
"eslint-plugin-ft-flow": "^3.0.11",
|
|
98
99
|
"eslint-plugin-import": "^2.28.1",
|
|
99
100
|
"eslint-plugin-jest": "^27.9.0",
|
|
100
101
|
"eslint-plugin-n": "^16.0.2",
|
|
@@ -105,7 +106,7 @@
|
|
|
105
106
|
"prettier": "^2.8.8",
|
|
106
107
|
"react": "18.2.0",
|
|
107
108
|
"react-dom": "^18.2.0",
|
|
108
|
-
"react-native": "0.77.0-rc.
|
|
109
|
+
"react-native": "0.77.0-rc.7",
|
|
109
110
|
"react-native-builder-bob": "^0.23.2",
|
|
110
111
|
"react-native-gesture-handler": "^2.22.0",
|
|
111
112
|
"react-native-reanimated": "3.16.7",
|
|
@@ -5,4 +5,6 @@ import type { ViewProps } from 'react-native';
|
|
|
5
5
|
|
|
6
6
|
interface NativeProps extends ViewProps {}
|
|
7
7
|
|
|
8
|
-
export default codegenNativeComponent<NativeProps>('RNSFullWindowOverlay', {
|
|
8
|
+
export default codegenNativeComponent<NativeProps>('RNSFullWindowOverlay', {
|
|
9
|
+
interfaceOnly: true,
|
|
10
|
+
});
|
package/src/types.tsx
CHANGED
|
@@ -184,12 +184,22 @@ export interface ScreenProps extends ViewProps {
|
|
|
184
184
|
* Sets the navigation bar color. Defaults to initial status bar color.
|
|
185
185
|
*
|
|
186
186
|
* @platform android
|
|
187
|
+
*
|
|
188
|
+
* @deprecated For all apps targeting Android SDK 35 or above this prop has no effect and is subject to removal in the future.
|
|
189
|
+
* For SDK below 35 this works only with specific app setup.
|
|
190
|
+
* This props is subject to removal in the future.
|
|
191
|
+
* See: https://developer.android.com/reference/android/view/Window#setNavigationBarColor(int)
|
|
187
192
|
*/
|
|
188
193
|
navigationBarColor?: ColorValue;
|
|
189
194
|
/**
|
|
190
195
|
* Boolean indicating whether the content should be visible behind the navigation bar. Defaults to `false`.
|
|
191
196
|
*
|
|
192
197
|
* @platform android
|
|
198
|
+
*
|
|
199
|
+
* @deprecated For all apps targeting Android SDK 35 or above edge-to-edge is enabled by default.
|
|
200
|
+
* We expect that in future SDKs this option will be enforced.
|
|
201
|
+
* This prop is subject to removal in the future.
|
|
202
|
+
* See: https://developer.android.com/about/versions/15/behavior-changes-15#window-insets
|
|
193
203
|
*/
|
|
194
204
|
navigationBarTranslucent?: boolean;
|
|
195
205
|
/**
|
|
@@ -408,13 +418,13 @@ export interface ScreenProps extends ViewProps {
|
|
|
408
418
|
/**
|
|
409
419
|
* How should the screen be presented.
|
|
410
420
|
* The following values are currently supported:
|
|
411
|
-
* - "push" – the new screen will be pushed onto a stack which on iOS means that the default animation will be slide from the side, the animation on Android may vary depending on the OS version and theme.
|
|
412
|
-
* - "modal" – the new screen will be presented modally.
|
|
421
|
+
* - "push" – the new screen will be pushed onto a stack which on iOS means that the default animation will be slide from the side, the animation on Android may vary depending on the OS version and theme. Supports nested stack rendering.
|
|
422
|
+
* - "modal" – the new screen will be presented modally. On iOS it'll use `UIModalPresentationStyleAutomatic`. On Android this is equivalent to `push` presentation type. Supports nested stack rendering.
|
|
413
423
|
* - "transparentModal" – the new screen will be presented modally but in addition the second to last screen will remain attached to the stack container such that if the top screen is non opaque the content below can still be seen. If "modal" is used instead the below screen will get unmounted as soon as the transition ends.
|
|
414
424
|
* - "containedModal" – will use "UIModalPresentationCurrentContext" modal style on iOS and will fallback to "modal" on Android.
|
|
415
425
|
* - "containedTransparentModal" – will use "UIModalPresentationOverCurrentContext" modal style on iOS and will fallback to "transparentModal" on Android.
|
|
416
426
|
* - "fullScreenModal" – will use "UIModalPresentationFullScreen" modal style on iOS and will fallback to "modal" on Android.
|
|
417
|
-
* - "formSheet" – will use "UIModalPresentationFormSheet" modal style on iOS
|
|
427
|
+
* - "formSheet" – will use "UIModalPresentationFormSheet" modal style on iOS, on Android this will use Material BottomSheetBehaviour. On Android neested stack rendering is not yet supported.
|
|
418
428
|
*/
|
|
419
429
|
stackPresentation?: StackPresentationTypes;
|
|
420
430
|
/**
|
|
@@ -425,6 +435,11 @@ export interface ScreenProps extends ViewProps {
|
|
|
425
435
|
* Sets the status bar color (similar to the `StatusBar` component). Defaults to initial status bar color.
|
|
426
436
|
*
|
|
427
437
|
* @platform android
|
|
438
|
+
*
|
|
439
|
+
* @deprecated For all apps targeting Android SDK 35 or above this prop has no effect.
|
|
440
|
+
* For SDK below 35 this works only with specific app setup.
|
|
441
|
+
* This prop is subject to removal in the future.
|
|
442
|
+
* See: https://developer.android.com/reference/android/view/Window#setStatusBarColor(int)
|
|
428
443
|
*/
|
|
429
444
|
statusBarColor?: ColorValue;
|
|
430
445
|
/**
|
|
@@ -439,6 +454,9 @@ export interface ScreenProps extends ViewProps {
|
|
|
439
454
|
* Sets the translucency of the status bar. Defaults to `false`.
|
|
440
455
|
*
|
|
441
456
|
* @platform android
|
|
457
|
+
*
|
|
458
|
+
* @deprecated For all apps targeting Android SDK 35 or above edge-to-edge mode on Android is enabled by default and this point loses relevance.
|
|
459
|
+
* It is expected that the edge-to-edge will be enforced in future SDKs: https://developer.android.com/about/versions/15/behavior-changes-15#ux.
|
|
442
460
|
*/
|
|
443
461
|
statusBarTranslucent?: boolean;
|
|
444
462
|
/**
|
|
@@ -644,6 +662,10 @@ export interface ScreenStackHeaderConfigProps extends ViewProps {
|
|
|
644
662
|
* header cannot be opaque.
|
|
645
663
|
*
|
|
646
664
|
* @platform android
|
|
665
|
+
*
|
|
666
|
+
* @deprecated For apps targeting Android SDK 35 or above edge-to-edge mode is enabled by default
|
|
667
|
+
* and it is expected that the edge-to-edge will be enforced in future SDKs - therefore this prop
|
|
668
|
+
* loses its relevance and will be removed at some point in the future.
|
|
647
669
|
*/
|
|
648
670
|
topInsetEnabled?: boolean;
|
|
649
671
|
/**
|