react-native-screens 4.4.0-rc.1 → 4.5.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/README.md CHANGED
@@ -106,18 +106,17 @@ Screens are already integrated with the React Native's most popular navigation l
106
106
 
107
107
  ## Supported react-native version
108
108
 
109
+ Below we present tables with mapping of the library version to the last supported react-native version. These tables are for the `4.x` line of the library. For compat tables
110
+ of `3.x` line please see consult [readme on the `3.x` branch](https://github.com/software-mansion/react-native-screens/tree/3.x?tab=readme-ov-file#supported-react-native-version).
111
+
109
112
  ### Support for Paper
110
113
 
111
114
  Paper is the default rendering system for React Native versions prior to 0.76.
112
115
 
113
116
  | library version | react-native version |
114
117
  | --------------- | -------------------- |
115
- | 3.33.0+ | 0.72.0+ |
116
- | 3.32.0+ | 0.71.0+ |
117
- | 3.30.0+ | 0.68.0+ |
118
- | 3.14.0+ | 0.64.0+ |
119
- | 3.0.0+ | 0.62.0+ |
120
- | 2.0.0+ | 0.60.0+ |
118
+ | 4.5.0+ | 0.74.0+ |
119
+ | 4.0.0+ | 0.72.0+ |
121
120
 
122
121
  ### Support for Fabric
123
122
 
@@ -127,14 +126,8 @@ Here's a table with summary of supported `react-native` versions when Fabric is
127
126
 
128
127
  | library version | react-native version |
129
128
  | --------------- | -------------------- |
130
- | 3.35.0+ | 0.76.0+ |
131
- | 3.33.0+ | 0.75.0+ |
132
- | 3.32.0+ | 0.74.0+ |
133
- | 3.28.0+ | 0.73.0+ |
134
- | 3.21.0+ | 0.72.0+ |
135
- | 3.19.0+ | 0.71.0+ |
136
- | 3.18.0+ | 0.70.0+ |
137
- | 3.14.0+ | 0.69.0+ |
129
+ | 4.5.0+ | 0.77.0+ |
130
+ | 4.0.0+ | 0.76.0+ |
138
131
 
139
132
  ## Usage with [react-navigation](https://github.com/react-navigation/react-navigation)
140
133
 
@@ -99,13 +99,7 @@ def IS_NEW_ARCHITECTURE_ENABLED = isNewArchitectureEnabled()
99
99
 
100
100
  android {
101
101
  compileSdkVersion safeExtGet('compileSdkVersion', rnsDefaultCompileSdkVersion)
102
- def agpVersion = Version.ANDROID_GRADLE_PLUGIN_VERSION
103
- if (agpVersion.tokenize('.')[0].toInteger() >= 7) {
104
- namespace "com.swmansion.rnscreens"
105
- buildFeatures {
106
- buildConfig true
107
- }
108
- }
102
+ namespace "com.swmansion.rnscreens"
109
103
 
110
104
  // Used to override the NDK path/version on internal CI or by allowing
111
105
  // users to customize the NDK path/version from their root project (e.g. for M1 support)
@@ -134,6 +128,7 @@ android {
134
128
  }
135
129
  buildFeatures {
136
130
  prefab true
131
+ buildConfig true
137
132
  }
138
133
  externalNativeBuild {
139
134
  cmake {
@@ -159,7 +154,13 @@ android {
159
154
  "**/libc++_shared.so",
160
155
  "**/libreact_render*.so",
161
156
  "**/libreactnativejni.so",
162
- "**/libreact_performance_timeline.so"
157
+ "**/libreact_performance_timeline.so",
158
+ // In 0.76 multiple react-native's libraries were merged and these are the main new artifacts we're using.
159
+ // Some of above lib* names could be removed after we remove support for 0.76.
160
+ // https://github.com/facebook/react-native/pull/43909
161
+ // https://github.com/facebook/react-native/pull/46059
162
+ "**/libfbjni.so",
163
+ "**/libreactnative.so"
163
164
  ]
164
165
  }
165
166
  sourceSets.main {
@@ -1,5 +1,4 @@
1
1
 
2
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
- package="com.swmansion.rnscreens">
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
4
3
 
5
4
  </manifest>
@@ -1,6 +1,6 @@
1
1
  package com.swmansion.rnscreens
2
2
 
3
- import com.facebook.react.TurboReactPackage
3
+ import com.facebook.react.BaseReactPackage
4
4
  import com.facebook.react.bridge.NativeModule
5
5
  import com.facebook.react.bridge.ReactApplicationContext
6
6
  import com.facebook.react.module.annotations.ReactModuleList
@@ -9,12 +9,14 @@ import com.facebook.react.module.model.ReactModuleInfoProvider
9
9
  import com.facebook.react.uimanager.ViewManager
10
10
  import com.swmansion.rnscreens.utils.ScreenDummyLayoutHelper
11
11
 
12
+ // Fool autolinking for older versions that do not support BaseReactPackage.
13
+ // public class RNScreensPackage implements TurboReactPackage {
12
14
  @ReactModuleList(
13
15
  nativeModules = [
14
16
  ScreensModule::class,
15
17
  ],
16
18
  )
17
- class RNScreensPackage : TurboReactPackage() {
19
+ class RNScreensPackage : BaseReactPackage() {
18
20
  // We just retain it here. This object helps us tackle jumping content when using native header.
19
21
  // See: https://github.com/software-mansion/react-native-screens/pull/2169
20
22
  private var screenDummyLayoutHelper: ScreenDummyLayoutHelper? = null
@@ -11,10 +11,11 @@ package com.facebook.react.viewmanagers;
11
11
 
12
12
  import android.view.View;
13
13
  import androidx.annotation.Nullable;
14
+ import com.facebook.react.uimanager.BaseViewManager;
14
15
  import com.facebook.react.uimanager.BaseViewManagerDelegate;
15
- import com.facebook.react.uimanager.BaseViewManagerInterface;
16
+ import com.facebook.react.uimanager.LayoutShadowNode;
16
17
 
17
- public class RNSScreenContainerManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenContainerManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
+ public class RNSScreenContainerManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNSScreenContainerManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
19
  public RNSScreenContainerManagerDelegate(U viewManager) {
19
20
  super(viewManager);
20
21
  }
@@ -11,10 +11,11 @@ package com.facebook.react.viewmanagers;
11
11
 
12
12
  import android.view.View;
13
13
  import androidx.annotation.Nullable;
14
+ import com.facebook.react.uimanager.BaseViewManager;
14
15
  import com.facebook.react.uimanager.BaseViewManagerDelegate;
15
- import com.facebook.react.uimanager.BaseViewManagerInterface;
16
+ import com.facebook.react.uimanager.LayoutShadowNode;
16
17
 
17
- public class RNSScreenContentWrapperManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenContentWrapperManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
+ public class RNSScreenContentWrapperManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNSScreenContentWrapperManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
19
  public RNSScreenContentWrapperManagerDelegate(U viewManager) {
19
20
  super(viewManager);
20
21
  }
@@ -11,10 +11,11 @@ package com.facebook.react.viewmanagers;
11
11
 
12
12
  import android.view.View;
13
13
  import androidx.annotation.Nullable;
14
+ import com.facebook.react.uimanager.BaseViewManager;
14
15
  import com.facebook.react.uimanager.BaseViewManagerDelegate;
15
- import com.facebook.react.uimanager.BaseViewManagerInterface;
16
+ import com.facebook.react.uimanager.LayoutShadowNode;
16
17
 
17
- public class RNSScreenFooterManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenFooterManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
+ public class RNSScreenFooterManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNSScreenFooterManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
19
  public RNSScreenFooterManagerDelegate(U viewManager) {
19
20
  super(viewManager);
20
21
  }
@@ -14,10 +14,11 @@ import androidx.annotation.Nullable;
14
14
  import com.facebook.react.bridge.ColorPropConverter;
15
15
  import com.facebook.react.bridge.ReadableArray;
16
16
  import com.facebook.react.bridge.ReadableMap;
17
+ import com.facebook.react.uimanager.BaseViewManager;
17
18
  import com.facebook.react.uimanager.BaseViewManagerDelegate;
18
- import com.facebook.react.uimanager.BaseViewManagerInterface;
19
+ import com.facebook.react.uimanager.LayoutShadowNode;
19
20
 
20
- public class RNSScreenManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
21
+ public class RNSScreenManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNSScreenManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
21
22
  public RNSScreenManagerDelegate(U viewManager) {
22
23
  super(viewManager);
23
24
  }
@@ -12,10 +12,11 @@ package com.facebook.react.viewmanagers;
12
12
  import android.view.View;
13
13
  import androidx.annotation.Nullable;
14
14
  import com.facebook.react.bridge.ColorPropConverter;
15
+ import com.facebook.react.uimanager.BaseViewManager;
15
16
  import com.facebook.react.uimanager.BaseViewManagerDelegate;
16
- import com.facebook.react.uimanager.BaseViewManagerInterface;
17
+ import com.facebook.react.uimanager.LayoutShadowNode;
17
18
 
18
- public class RNSScreenStackHeaderConfigManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenStackHeaderConfigManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
19
+ public class RNSScreenStackHeaderConfigManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNSScreenStackHeaderConfigManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
19
20
  public RNSScreenStackHeaderConfigManagerDelegate(U viewManager) {
20
21
  super(viewManager);
21
22
  }
@@ -11,10 +11,11 @@ package com.facebook.react.viewmanagers;
11
11
 
12
12
  import android.view.View;
13
13
  import androidx.annotation.Nullable;
14
+ import com.facebook.react.uimanager.BaseViewManager;
14
15
  import com.facebook.react.uimanager.BaseViewManagerDelegate;
15
- import com.facebook.react.uimanager.BaseViewManagerInterface;
16
+ import com.facebook.react.uimanager.LayoutShadowNode;
16
17
 
17
- public class RNSScreenStackHeaderSubviewManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenStackHeaderSubviewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
+ public class RNSScreenStackHeaderSubviewManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNSScreenStackHeaderSubviewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
19
  public RNSScreenStackHeaderSubviewManagerDelegate(U viewManager) {
19
20
  super(viewManager);
20
21
  }
@@ -11,10 +11,11 @@ package com.facebook.react.viewmanagers;
11
11
 
12
12
  import android.view.View;
13
13
  import androidx.annotation.Nullable;
14
+ import com.facebook.react.uimanager.BaseViewManager;
14
15
  import com.facebook.react.uimanager.BaseViewManagerDelegate;
15
- import com.facebook.react.uimanager.BaseViewManagerInterface;
16
+ import com.facebook.react.uimanager.LayoutShadowNode;
16
17
 
17
- public class RNSScreenStackManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenStackManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
+ public class RNSScreenStackManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNSScreenStackManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
19
  public RNSScreenStackManagerDelegate(U viewManager) {
19
20
  super(viewManager);
20
21
  }
@@ -13,10 +13,11 @@ import android.view.View;
13
13
  import androidx.annotation.Nullable;
14
14
  import com.facebook.react.bridge.ColorPropConverter;
15
15
  import com.facebook.react.bridge.ReadableArray;
16
+ import com.facebook.react.uimanager.BaseViewManager;
16
17
  import com.facebook.react.uimanager.BaseViewManagerDelegate;
17
- import com.facebook.react.uimanager.BaseViewManagerInterface;
18
+ import com.facebook.react.uimanager.LayoutShadowNode;
18
19
 
19
- public class RNSSearchBarManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSSearchBarManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
20
+ public class RNSSearchBarManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNSSearchBarManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
20
21
  public RNSSearchBarManagerDelegate(U viewManager) {
21
22
  super(viewManager);
22
23
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screens",
3
- "version": "4.4.0-rc.1",
3
+ "version": "4.5.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 ../)",
@@ -80,18 +80,17 @@
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.76.4",
84
- "@react-native/eslint-config": "0.76.4",
85
- "@react-native/metro-config": "0.76.4",
86
- "@react-native/typescript-config": "0.76.4",
83
+ "@react-native/babel-preset": "0.77.0-rc.6",
84
+ "@react-native/eslint-config": "0.77.0-rc.6",
85
+ "@react-native/metro-config": "0.77.0-rc.6",
86
+ "@react-native/typescript-config": "0.77.0-rc.6",
87
87
  "@react-navigation/native": "^5.8.0",
88
88
  "@react-navigation/stack": "^5.10.0",
89
- "@types/jest": "^29.3.1",
89
+ "@types/jest": "^29.5.13",
90
90
  "@types/react": "^18.2.72",
91
91
  "@types/react-test-renderer": "^18.0.0",
92
92
  "@typescript-eslint/eslint-plugin": "^6.5.0",
93
93
  "@typescript-eslint/parser": "^6.5.0",
94
- "babel-jest": "^29.6.4",
95
94
  "clang-format": "^1.8.0",
96
95
  "eslint": "^8.56.0",
97
96
  "eslint-config-prettier": "^8.10.0",
@@ -106,7 +105,7 @@
106
105
  "prettier": "^2.8.8",
107
106
  "react": "18.2.0",
108
107
  "react-dom": "^18.2.0",
109
- "react-native": "0.76.4",
108
+ "react-native": "0.77.0-rc.6",
110
109
  "react-native-builder-bob": "^0.23.2",
111
110
  "react-native-gesture-handler": "^2.13.3",
112
111
  "react-native-reanimated": "3.9.0-nightly-20240402-12717cdb5",
@@ -158,14 +157,14 @@
158
157
  "componentProvider": {
159
158
  "RNSFullWindowOverlay": "RNSFullWindowOverlay",
160
159
  "RNSModalScreen": "RNSModalScreen",
161
- "RNSScreenContainer": "RNSScreenContainer",
160
+ "RNSScreenContainer": "RNSScreenContainerView",
162
161
  "RNSScreenContentWrapper": "RNSScreenContentWrapper",
163
162
  "RNSScreenFooter": "RNSScreenFooter",
164
- "RNSScreen": "RNSScreen",
165
- "RNSScreenNavigationContainer": "RNSScreenNavigationContainer",
163
+ "RNSScreen": "RNSScreenView",
164
+ "RNSScreenNavigationContainer": "RNSScreenNavigationContainerView",
166
165
  "RNSScreenStackHeaderConfig": "RNSScreenStackHeaderConfig",
167
166
  "RNSScreenStackHeaderSubview": "RNSScreenStackHeaderSubview",
168
- "RNSScreenStack": "RNSScreenStack",
167
+ "RNSScreenStack": "RNSScreenStackView",
169
168
  "RNSSearchBar": "RNSSearchBar"
170
169
  }
171
170
  }