react-native 0.80.1 → 0.80.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/Libraries/Core/ReactNativeVersion.js +1 -1
  2. package/React/Base/RCTVersion.m +1 -1
  3. package/React/CoreModules/RCTDeviceInfo.mm +3 -4
  4. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +30 -25
  5. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +2 -1
  6. package/ReactAndroid/api/ReactAndroid.api +2 -2
  7. package/ReactAndroid/gradle.properties +1 -1
  8. package/ReactAndroid/src/main/java/com/facebook/react/HeadlessJsTaskService.kt +3 -2
  9. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +25 -1
  10. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +2 -2
  11. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +4 -0
  12. package/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListener.kt +27 -16
  13. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  14. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +0 -3
  15. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +17 -6
  16. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  17. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +2 -1
  18. package/package.json +8 -8
  19. package/scripts/cocoapods/rndependencies.rb +4 -1
  20. package/sdks/.hermesversion +1 -1
  21. package/sdks/hermes-engine/hermes-utils.rb +4 -1
  22. package/sdks/hermesc/osx-bin/hermes +0 -0
  23. package/sdks/hermesc/osx-bin/hermesc +0 -0
  24. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  25. package/sdks/hermesc/win64-bin/msvcp140.dll +0 -0
  26. package/sdks/hermesc/win64-bin/vcruntime140.dll +0 -0
  27. package/sdks/hermesc/win64-bin/vcruntime140_1.dll +0 -0
  28. package/third-party-podspecs/ReactNativeDependencies.podspec +1 -1
@@ -16,6 +16,6 @@ export const version: $ReadOnly<{
16
16
  }> = {
17
17
  major: 0,
18
18
  minor: 80,
19
- patch: 1,
19
+ patch: 3,
20
20
  prerelease: null,
21
21
  };
@@ -23,7 +23,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
23
23
  __rnVersion = @{
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(80),
26
- RCTVersionPatch: @(1),
26
+ RCTVersionPatch: @(3),
27
27
  RCTVersionPrerelease: [NSNull null],
28
28
  };
29
29
  });
@@ -237,11 +237,10 @@ static NSDictionary *RCTExportedDimensions(CGFloat fontScale)
237
237
  - (void)interfaceOrientationDidChange
238
238
  {
239
239
  #if TARGET_OS_IOS && !TARGET_OS_MACCATALYST
240
- UIApplication *application = RCTSharedApplication();
241
- UIInterfaceOrientation nextOrientation = RCTKeyWindow().windowScene.interfaceOrientation;
240
+ UIWindow *window = RCTKeyWindow();
241
+ UIInterfaceOrientation nextOrientation = window.windowScene.interfaceOrientation;
242
242
 
243
- BOOL isRunningInFullScreen =
244
- CGRectEqualToRect(application.delegate.window.frame, application.delegate.window.screen.bounds);
243
+ BOOL isRunningInFullScreen = window ? CGRectEqualToRect(window.frame, window.screen.bounds) : YES;
245
244
  // We are catching here two situations for multitasking view:
246
245
  // a) The app is in Split View and the container gets resized -> !isRunningInFullScreen
247
246
  // b) The app changes to/from fullscreen example: App runs in slide over mode and goes into fullscreen->
@@ -24,9 +24,13 @@ using namespace facebook::react;
24
24
  @end
25
25
 
26
26
  @implementation RCTPullToRefreshViewComponentView {
27
- BOOL _isBeforeInitialLayout;
28
27
  UIRefreshControl *_refreshControl;
29
28
  RCTScrollViewComponentView *__weak _scrollViewComponentView;
29
+ // This variable keeps track of whether the view is recycled or not. Once the view is recycled, the component
30
+ // creates a new instance of UIRefreshControl, resetting the native props to the default values.
31
+ // However, when recycling, we are keeping around the old _props. The flag is used to force the application
32
+ // of the current props to the newly created UIRefreshControl the first time that updateProps is called.
33
+ BOOL _recycled;
30
34
  }
31
35
 
32
36
  - (instancetype)initWithFrame:(CGRect)frame
@@ -36,8 +40,7 @@ using namespace facebook::react;
36
40
  // attaching and detaching of a pull-to-refresh view to a scroll view.
37
41
  // The pull-to-refresh view is not a subview of this view.
38
42
  self.hidden = YES;
39
-
40
- _isBeforeInitialLayout = YES;
43
+ _recycled = NO;
41
44
  [self _initializeUIRefreshControl];
42
45
  }
43
46
 
@@ -63,54 +66,53 @@ using namespace facebook::react;
63
66
  {
64
67
  [super prepareForRecycle];
65
68
  _scrollViewComponentView = nil;
66
- _props = nil;
67
- _isBeforeInitialLayout = YES;
68
69
  [self _initializeUIRefreshControl];
70
+ _recycled = YES;
69
71
  }
70
72
 
71
73
  - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps
72
74
  {
73
- // Prop updates are ignored by _refreshControl until after the initial layout, so just store them in _props until then
74
- if (_isBeforeInitialLayout) {
75
- _props = std::static_pointer_cast<const PullToRefreshViewProps>(props);
76
- return;
77
- }
78
-
79
75
  const auto &oldConcreteProps = static_cast<const PullToRefreshViewProps &>(*_props);
80
76
  const auto &newConcreteProps = static_cast<const PullToRefreshViewProps &>(*props);
81
77
 
82
- if (newConcreteProps.tintColor != oldConcreteProps.tintColor) {
78
+ if (_recycled || newConcreteProps.tintColor != oldConcreteProps.tintColor) {
83
79
  _refreshControl.tintColor = RCTUIColorFromSharedColor(newConcreteProps.tintColor);
84
80
  }
85
81
 
86
- if (newConcreteProps.progressViewOffset != oldConcreteProps.progressViewOffset) {
82
+ if (_recycled || newConcreteProps.progressViewOffset != oldConcreteProps.progressViewOffset) {
87
83
  [self _updateProgressViewOffset:newConcreteProps.progressViewOffset];
88
84
  }
89
85
 
90
86
  BOOL needsUpdateTitle = NO;
91
87
 
92
- if (newConcreteProps.title != oldConcreteProps.title) {
88
+ if (_recycled || newConcreteProps.title != oldConcreteProps.title) {
93
89
  needsUpdateTitle = YES;
94
90
  }
95
91
 
96
- if (newConcreteProps.titleColor != oldConcreteProps.titleColor) {
92
+ if (_recycled || newConcreteProps.titleColor != oldConcreteProps.titleColor) {
97
93
  needsUpdateTitle = YES;
98
94
  }
99
95
 
100
96
  [super updateProps:props oldProps:oldProps];
101
97
 
102
- if (needsUpdateTitle) {
98
+ if (_recycled || needsUpdateTitle) {
103
99
  [self _updateTitle];
104
100
  }
105
101
 
106
102
  // All prop updates must happen above the call to begin refreshing, or else _refreshControl will ignore the updates
107
- if (newConcreteProps.refreshing != oldConcreteProps.refreshing) {
103
+ if (_recycled || newConcreteProps.refreshing != oldConcreteProps.refreshing) {
108
104
  if (newConcreteProps.refreshing) {
109
105
  [self beginRefreshingProgrammatically];
110
106
  } else {
111
107
  [_refreshControl endRefreshing];
112
108
  }
113
109
  }
110
+
111
+ if (_recycled || newConcreteProps.zIndex != oldConcreteProps.zIndex) {
112
+ _refreshControl.layer.zPosition = newConcreteProps.zIndex.value_or(0);
113
+ }
114
+
115
+ _recycled = NO;
114
116
  }
115
117
 
116
118
  #pragma mark -
@@ -155,10 +157,12 @@ using namespace facebook::react;
155
157
 
156
158
  // Attempts to begin refreshing before the initial layout are ignored by _refreshControl. So if the control is
157
159
  // refreshing when mounted, we need to call beginRefreshing in layoutSubviews or it won't work.
158
- if (_isBeforeInitialLayout) {
159
- _isBeforeInitialLayout = NO;
160
+ if (self.window) {
161
+ const auto &concreteProps = static_cast<const PullToRefreshViewProps &>(*_props);
160
162
 
161
- [self updateProps:_props oldProps:PullToRefreshViewShadowNode::defaultSharedProps()];
163
+ if (concreteProps.refreshing) {
164
+ [self beginRefreshingProgrammatically];
165
+ }
162
166
  }
163
167
  }
164
168
 
@@ -214,11 +218,12 @@ using namespace facebook::react;
214
218
 
215
219
  // When refreshing programmatically (i.e. without pulling down), we must explicitly adjust the ScrollView content
216
220
  // offset, or else the _refreshControl won't be visible
217
- UIScrollView *scrollView = _scrollViewComponentView.scrollView;
218
- CGPoint offset = {scrollView.contentOffset.x, scrollView.contentOffset.y - _refreshControl.frame.size.height};
219
- [scrollView setContentOffset:offset];
220
-
221
- [_refreshControl beginRefreshing];
221
+ if (!_refreshControl.isRefreshing) {
222
+ UIScrollView *scrollView = _scrollViewComponentView.scrollView;
223
+ CGPoint offset = {scrollView.contentOffset.x, scrollView.contentOffset.y - _refreshControl.frame.size.height};
224
+ [scrollView setContentOffset:offset];
225
+ [_refreshControl beginRefreshing];
226
+ }
222
227
  }
223
228
 
224
229
  #pragma mark - Native commands
@@ -22,6 +22,7 @@
22
22
  #import "RCTTextInputNativeCommands.h"
23
23
  #import "RCTTextInputUtils.h"
24
24
 
25
+ #import <limits>
25
26
  #import "RCTFabricComponentsPlugins.h"
26
27
 
27
28
  /** Native iOS text field bottom keyboard offset amount */
@@ -447,7 +448,7 @@ static NSSet<NSNumber *> *returnKeyTypesSet;
447
448
  }
448
449
  }
449
450
 
450
- if (props.maxLength) {
451
+ if (props.maxLength < std::numeric_limits<int>::max()) {
451
452
  NSInteger allowedLength = props.maxLength - _backedTextInputView.attributedText.string.length + range.length;
452
453
 
453
454
  if (allowedLength > 0 && text.length > allowedLength) {
@@ -31,8 +31,8 @@ public abstract class com/facebook/react/HeadlessJsTaskService : android/app/Ser
31
31
  public fun <init> ()V
32
32
  public static final fun acquireWakeLockNow (Landroid/content/Context;)V
33
33
  protected final fun getReactContext ()Lcom/facebook/react/bridge/ReactContext;
34
- protected final fun getReactHost ()Lcom/facebook/react/ReactHost;
35
- protected final fun getReactNativeHost ()Lcom/facebook/react/ReactNativeHost;
34
+ protected fun getReactHost ()Lcom/facebook/react/ReactHost;
35
+ protected fun getReactNativeHost ()Lcom/facebook/react/ReactNativeHost;
36
36
  protected fun getTaskConfig (Landroid/content/Intent;)Lcom/facebook/react/jstasks/HeadlessJsTaskConfig;
37
37
  public fun onBind (Landroid/content/Intent;)Landroid/os/IBinder;
38
38
  public fun onDestroy ()V
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.80.1
1
+ VERSION_NAME=0.80.3
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
 
4
4
  android.useAndroidX=true
@@ -112,7 +112,8 @@ public abstract class HeadlessJsTaskService : Service(), HeadlessJsTaskEventList
112
112
  * simply have a different mechanism for storing a `ReactNativeHost`, e.g. as a static field
113
113
  * somewhere.
114
114
  */
115
- protected val reactNativeHost: ReactNativeHost
115
+ @Suppress("DEPRECATION")
116
+ protected open val reactNativeHost: ReactNativeHost
116
117
  get() = (application as ReactApplication).reactNativeHost
117
118
 
118
119
  /**
@@ -120,7 +121,7 @@ public abstract class HeadlessJsTaskService : Service(), HeadlessJsTaskEventList
120
121
  * [ReactApplication] and calls [ReactApplication.reactHost]. This method assumes it is called in
121
122
  * new architecture and returns null if not.
122
123
  */
123
- protected val reactHost: ReactHost?
124
+ protected open val reactHost: ReactHost?
124
125
  get() = (application as ReactApplication).reactHost
125
126
 
126
127
  protected val reactContext: ReactContext?
@@ -20,6 +20,7 @@ import com.facebook.infer.annotation.Assertions;
20
20
  import com.facebook.react.bridge.Callback;
21
21
  import com.facebook.react.bridge.ReactContext;
22
22
  import com.facebook.react.common.annotations.DeprecatedInNewArchitecture;
23
+ import com.facebook.react.common.LifecycleState;
23
24
  import com.facebook.react.interfaces.fabric.ReactSurface;
24
25
  import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags;
25
26
  import com.facebook.react.modules.core.PermissionListener;
@@ -228,7 +229,7 @@ public class ReactActivityDelegate {
228
229
 
229
230
  public void onRequestPermissionsResult(
230
231
  final int requestCode, final String[] permissions, final int[] grantResults) {
231
- mPermissionsCallback =
232
+ Callback permissionsCallback =
232
233
  args -> {
233
234
  if (mPermissionListener != null
234
235
  && mPermissionListener.onRequestPermissionsResult(
@@ -236,6 +237,29 @@ public class ReactActivityDelegate {
236
237
  mPermissionListener = null;
237
238
  }
238
239
  };
240
+
241
+ LifecycleState lifecycle;
242
+ if (isFabricEnabled()) {
243
+ ReactHost reactHost = getReactHost();
244
+ lifecycle = reactHost != null ? reactHost.getLifecycleState() : LifecycleState.BEFORE_CREATE;
245
+ } else {
246
+ ReactNativeHost reactNativeHost = getReactNativeHost();
247
+ if (!reactNativeHost.hasInstance()) {
248
+ lifecycle = LifecycleState.BEFORE_CREATE;
249
+ } else {
250
+ lifecycle = reactNativeHost.getReactInstanceManager().getLifecycleState();
251
+ }
252
+ }
253
+
254
+ // If the permission request didn't show a dialog to the user, we can call the callback
255
+ // immediately.
256
+ // Otherwise, we need to wait until onResume to call it.
257
+ if (lifecycle == LifecycleState.RESUMED) {
258
+ permissionsCallback.invoke();
259
+ return;
260
+ }
261
+
262
+ mPermissionsCallback = permissionsCallback;
239
263
  }
240
264
 
241
265
  protected Context getContext() {
@@ -1403,14 +1403,14 @@ public class ReactInstanceManager {
1403
1403
  new RuntimeException(
1404
1404
  "detachRootViewFromInstance called with ReactRootView with invalid id"));
1405
1405
  }
1406
-
1407
- clearReactRoot(reactRoot);
1408
1406
  } else {
1409
1407
  reactContext
1410
1408
  .getCatalystInstance()
1411
1409
  .getJSModule(AppRegistry.class)
1412
1410
  .unmountApplicationComponentAtRootTag(reactRoot.getRootViewTag());
1413
1411
  }
1412
+
1413
+ clearReactRoot(reactRoot);
1414
1414
  }
1415
1415
 
1416
1416
  @ThreadConfined(UI)
@@ -135,6 +135,10 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
135
135
  private void init() {
136
136
  setRootViewTag(ReactRootViewTagGenerator.getNextRootViewTag());
137
137
  setClipChildren(false);
138
+
139
+ if (ReactNativeFeatureFlags.enableFontScaleChangesUpdatingLayout()) {
140
+ DisplayMetricsHolder.initDisplayMetrics(getContext().getApplicationContext());
141
+ }
138
142
  }
139
143
 
140
144
  @Override
@@ -9,6 +9,7 @@
9
9
 
10
10
  package com.facebook.react.fabric.internal.interop
11
11
 
12
+ import androidx.annotation.VisibleForTesting
12
13
  import com.facebook.react.bridge.UIManager
13
14
  import com.facebook.react.bridge.UIManagerListener
14
15
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
@@ -24,9 +25,9 @@ import com.facebook.react.fabric.interop.UIBlockViewResolver
24
25
  */
25
26
  @OptIn(UnstableReactNativeAPI::class)
26
27
  internal class InteropUIBlockListener : UIManagerListener {
28
+ @VisibleForTesting internal val beforeUIBlocks: MutableList<UIBlock> = mutableListOf()
27
29
 
28
- internal val beforeUIBlocks: MutableList<UIBlock> = mutableListOf()
29
- internal val afterUIBlocks: MutableList<UIBlock> = mutableListOf()
30
+ @VisibleForTesting internal val afterUIBlocks: MutableList<UIBlock> = mutableListOf()
30
31
 
31
32
  @Synchronized
32
33
  fun prependUIBlock(block: UIBlock) {
@@ -39,27 +40,37 @@ internal class InteropUIBlockListener : UIManagerListener {
39
40
  }
40
41
 
41
42
  override fun willMountItems(uiManager: UIManager) {
42
- if (beforeUIBlocks.isEmpty()) {
43
+ if (uiManager !is UIBlockViewResolver) {
43
44
  return
44
45
  }
45
- beforeUIBlocks.forEach {
46
- if (uiManager is UIBlockViewResolver) {
47
- it.execute(uiManager)
48
- }
49
- }
50
- beforeUIBlocks.clear()
46
+
47
+ // avoid ConcurrentModificationException by iterating over a copy
48
+ val blocks =
49
+ synchronized(this) {
50
+ if (beforeUIBlocks.isEmpty()) {
51
+ return
52
+ }
53
+ beforeUIBlocks.toList().also { beforeUIBlocks.clear() }
54
+ }
55
+
56
+ blocks.forEach { block -> block.execute(uiManager) }
51
57
  }
52
58
 
53
59
  override fun didMountItems(uiManager: UIManager) {
54
- if (afterUIBlocks.isEmpty()) {
60
+ if (uiManager !is UIBlockViewResolver) {
55
61
  return
56
62
  }
57
- afterUIBlocks.forEach {
58
- if (uiManager is UIBlockViewResolver) {
59
- it.execute(uiManager)
60
- }
61
- }
62
- afterUIBlocks.clear()
63
+
64
+ // avoid ConcurrentModificationException by iterating over a copy
65
+ val blocks =
66
+ synchronized(this) {
67
+ if (afterUIBlocks.isEmpty()) {
68
+ return
69
+ }
70
+ afterUIBlocks.toList().also { afterUIBlocks.clear() }
71
+ }
72
+
73
+ blocks.forEach { block -> block.execute(uiManager) }
63
74
  }
64
75
 
65
76
  override fun didDispatchMountItems(uiManager: UIManager) = didMountItems(uiManager)
@@ -14,7 +14,7 @@ public object ReactNativeVersion {
14
14
  public val VERSION: Map<String, Any?> = mapOf(
15
15
  "major" to 0,
16
16
  "minor" to 80,
17
- "patch" to 1,
17
+ "patch" to 3,
18
18
  "prerelease" to null
19
19
  )
20
20
  }
@@ -679,9 +679,6 @@ public class NativeViewHierarchyManager {
679
679
  View rootView = mTagsToViews.get(rootViewTag);
680
680
  dropView(rootView);
681
681
  mRootTags.delete(rootViewTag);
682
- if (rootView != null) {
683
- rootView.setId(View.NO_ID);
684
- }
685
682
  }
686
683
 
687
684
  /**
@@ -43,6 +43,7 @@ import com.facebook.react.uimanager.events.EventDispatcher;
43
43
  import com.facebook.react.uimanager.util.ReactFindViewUtil;
44
44
  import java.util.HashMap;
45
45
  import java.util.List;
46
+ import java.util.Map;
46
47
 
47
48
  /**
48
49
  * Utility class that handles the addition of a "role" for accessibility to either a View or
@@ -54,7 +55,8 @@ public class ReactAccessibilityDelegate extends ExploreByTouchHelper {
54
55
  public static final HashMap<String, Integer> sActionIdMap = new HashMap<>();
55
56
 
56
57
  private static final String TAG = "ReactAccessibilityDelegate";
57
- private static int sCounter = 0x3f000000;
58
+ private static int sCustomActionCounter = 0x3f000000;
59
+ private static final Map<String, Integer> sCustomActionIdMap = new HashMap<>();
58
60
  private static final int TIMEOUT_SEND_ACCESSIBILITY_EVENT = 200;
59
61
  private static final int SEND_EVENT = 1;
60
62
  private static final String delimiter = ", ";
@@ -206,14 +208,23 @@ public class ReactAccessibilityDelegate extends ExploreByTouchHelper {
206
208
  if (!action.hasKey("name")) {
207
209
  throw new IllegalArgumentException("Unknown accessibility action.");
208
210
  }
209
- int actionId = sCounter;
211
+
212
+ String actionName = action.getString("name");
210
213
  String actionLabel = action.hasKey("label") ? action.getString("label") : null;
211
- if (sActionIdMap.containsKey(action.getString("name"))) {
212
- actionId = sActionIdMap.get(action.getString("name"));
214
+ int actionId;
215
+
216
+ if (sActionIdMap.containsKey(actionName)) {
217
+ actionId = sActionIdMap.get(actionName);
213
218
  } else {
214
- sCounter++;
219
+ if (sCustomActionIdMap.containsKey(actionName)) {
220
+ actionId = sCustomActionIdMap.get(actionName);
221
+ } else {
222
+ actionId = sCustomActionCounter++;
223
+ sCustomActionIdMap.put(actionName, actionId);
224
+ }
215
225
  }
216
- mAccessibilityActionsMap.put(actionId, action.getString("name"));
226
+
227
+ mAccessibilityActionsMap.put(actionId, actionName);
217
228
  final AccessibilityActionCompat accessibilityAction =
218
229
  new AccessibilityActionCompat(actionId, actionLabel);
219
230
  info.addAction(accessibilityAction);
@@ -14,14 +14,14 @@
14
14
 
15
15
  #define REACT_NATIVE_VERSION_MAJOR 0
16
16
  #define REACT_NATIVE_VERSION_MINOR 80
17
- #define REACT_NATIVE_VERSION_PATCH 1
17
+ #define REACT_NATIVE_VERSION_PATCH 3
18
18
 
19
19
  namespace facebook::react {
20
20
 
21
21
  constexpr struct {
22
22
  int32_t Major = 0;
23
23
  int32_t Minor = 80;
24
- int32_t Patch = 1;
24
+ int32_t Patch = 3;
25
25
  std::string_view Prerelease = "";
26
26
  } ReactNativeVersion;
27
27
 
@@ -13,6 +13,7 @@
13
13
  #include <react/renderer/components/view/ViewProps.h>
14
14
  #include <react/renderer/core/PropsParserContext.h>
15
15
  #include <react/renderer/graphics/Color.h>
16
+ #include <limits>
16
17
  #include <string>
17
18
 
18
19
  namespace facebook::react {
@@ -60,7 +61,7 @@ class BaseTextInputProps : public ViewProps, public BaseTextProps {
60
61
  // TODO: Rename to `tintColor` and make universal.
61
62
  SharedColor underlineColorAndroid{};
62
63
 
63
- int maxLength{};
64
+ int maxLength = std::numeric_limits<int>::max();
64
65
 
65
66
  /*
66
67
  * "Private" (only used by TextInput.js) props
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.80.1",
3
+ "version": "0.80.3",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -160,13 +160,13 @@
160
160
  },
161
161
  "dependencies": {
162
162
  "@jest/create-cache-key-function": "^29.7.0",
163
- "@react-native/assets-registry": "0.80.1",
164
- "@react-native/codegen": "0.80.1",
165
- "@react-native/community-cli-plugin": "0.80.1",
166
- "@react-native/gradle-plugin": "0.80.1",
167
- "@react-native/js-polyfills": "0.80.1",
168
- "@react-native/normalize-colors": "0.80.1",
169
- "@react-native/virtualized-lists": "0.80.1",
163
+ "@react-native/assets-registry": "0.80.3",
164
+ "@react-native/codegen": "0.80.3",
165
+ "@react-native/community-cli-plugin": "0.80.3",
166
+ "@react-native/gradle-plugin": "0.80.3",
167
+ "@react-native/js-polyfills": "0.80.3",
168
+ "@react-native/normalize-colors": "0.80.3",
169
+ "@react-native/virtualized-lists": "0.80.3",
170
170
  "abort-controller": "^3.0.0",
171
171
  "anser": "^1.4.9",
172
172
  "ansi-regex": "^5.0.0",
@@ -134,7 +134,10 @@ class ReactNativeDependenciesUtils
134
134
  end
135
135
 
136
136
  def self.release_tarball_url(version, build_type)
137
- maven_repo_url = "https://repo1.maven.org/maven2"
137
+ maven_repo_url =
138
+ ENV['ENTERPRISE_REPOSITORY'] != nil && ENV['ENTERPRISE_REPOSITORY'] != "" ?
139
+ ENV['ENTERPRISE_REPOSITORY'] :
140
+ "https://repo1.maven.org/maven2"
138
141
  group = "com/facebook/react"
139
142
  # Sample url from Maven:
140
143
  # https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.79.0-rc.0/react-native-artifacts-0.79.0-rc.0-reactnative-dependencies-debug.tar.gz
@@ -1 +1 @@
1
- hermes-2025-05-06-RNv0.80.0-4eb6132a5bf0450bf4c6c91987675381d7ac8bca
1
+ hermes-2025-07-24-RNv0.80.2-5c7dbc0a78cb2d2a8bc81c41c617c3abecf209ff
@@ -204,7 +204,10 @@ def hermestag_file(react_native_path)
204
204
  end
205
205
 
206
206
  def release_tarball_url(version, build_type)
207
- maven_repo_url = "https://repo1.maven.org/maven2"
207
+ maven_repo_url =
208
+ ENV['ENTERPRISE_REPOSITORY'] != nil && ENV['ENTERPRISE_REPOSITORY'] != "" ?
209
+ ENV['ENTERPRISE_REPOSITORY'] :
210
+ "https://repo1.maven.org/maven2"
208
211
  namespace = "com/facebook/react"
209
212
  # Sample url from Maven:
210
213
  # https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.71.0/react-native-artifacts-0.71.0-hermes-ios-debug.tar.gz
Binary file
Binary file
Binary file
Binary file
@@ -49,7 +49,7 @@ Pod::Spec.new do |spec|
49
49
  mkdir -p Headers
50
50
  XCFRAMEWORK_PATH=$(find "$CURRENT_PATH" -type d -name "ReactNativeDependencies.xcframework")
51
51
  HEADERS_PATH=$(find "$XCFRAMEWORK_PATH" -type d -name "Headers" | head -n 1)
52
- cp -R "$HEADERS_PATH/" Headers
52
+ cp -R "$HEADERS_PATH/." Headers
53
53
  mkdir -p framework/packages/react-native
54
54
  cp -R "$XCFRAMEWORK_PATH/.." framework/packages/react-native/
55
55
  find "$XCFRAMEWORK_PATH/.." -type f -exec rm {} +