react-native 0.77.0-rc.1 → 0.77.0-rc.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 (24) hide show
  1. package/Libraries/Animated/animations/Animation.js +1 -1
  2. package/Libraries/Core/ReactNativeVersion.js +1 -1
  3. package/React/Base/RCTVersion.m +1 -1
  4. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +4 -9
  5. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +4 -0
  6. package/ReactAndroid/api/ReactAndroid.api +2 -0
  7. package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +0 -13
  8. package/ReactAndroid/gradle.properties +1 -1
  9. package/ReactAndroid/src/main/java/com/facebook/react/HeadlessJsTaskService.java +12 -13
  10. package/ReactAndroid/src/main/java/com/facebook/react/module/model/ReactModuleInfo.kt +18 -0
  11. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  12. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactClippingViewManager.kt +0 -3
  13. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +31 -0
  14. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  15. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +2 -0
  16. package/ReactCommon/react/runtime/ReactInstance.cpp +39 -35
  17. package/ReactCommon/react/runtime/ReactInstance.h +2 -1
  18. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +3 -2
  19. package/package.json +8 -8
  20. package/scripts/cocoapods/utils.rb +6 -6
  21. package/scripts/codegen/generate-artifacts-executor.js +10 -0
  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
@@ -165,7 +165,7 @@ export default class Animation {
165
165
  const callback = this.#onEnd;
166
166
  if (callback != null) {
167
167
  this.#onEnd = null;
168
- queueMicrotask(() => callback(result));
168
+ callback(result);
169
169
  }
170
170
  }
171
171
  }
@@ -17,7 +17,7 @@ const version: $ReadOnly<{
17
17
  major: 0,
18
18
  minor: 77,
19
19
  patch: 0,
20
- prerelease: 'rc.1',
20
+ prerelease: 'rc.3',
21
21
  };
22
22
 
23
23
  module.exports = {version};
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(77),
26
26
  RCTVersionPatch: @(0),
27
- RCTVersionPrerelease: @"rc.1",
27
+ RCTVersionPrerelease: @"rc.3",
28
28
  };
29
29
  });
30
30
  return __rnVersion;
@@ -189,10 +189,11 @@ RCTSendScrollEventForNativeAnimations_DEPRECATED(UIScrollView *scrollView, NSInt
189
189
 
190
190
  UIEdgeInsets newEdgeInsets = _scrollView.contentInset;
191
191
  CGFloat inset = MAX(scrollViewLowerY - keyboardEndFrame.origin.y, 0);
192
+ const auto &props = static_cast<const ScrollViewProps &>(*_props);
192
193
  if (isInverted) {
193
- newEdgeInsets.top = MAX(inset, _scrollView.contentInset.top);
194
+ newEdgeInsets.top = MAX(inset, props.contentInset.top);
194
195
  } else {
195
- newEdgeInsets.bottom = MAX(inset, _scrollView.contentInset.bottom);
196
+ newEdgeInsets.bottom = MAX(inset, props.contentInset.bottom);
196
197
  }
197
198
 
198
199
  CGPoint newContentOffset = _scrollView.contentOffset;
@@ -210,12 +211,6 @@ RCTSendScrollEventForNativeAnimations_DEPRECATED(UIScrollView *scrollView, NSInt
210
211
  contentDiff = keyboardEndFrame.origin.y - keyboardBeginFrame.origin.y;
211
212
  }
212
213
  } else {
213
- CGRect viewIntersection = CGRectIntersection(self.firstResponderFocus, keyboardEndFrame);
214
-
215
- if (CGRectIsNull(viewIntersection)) {
216
- return;
217
- }
218
-
219
214
  // Inner text field focused
220
215
  CGFloat focusEnd = CGRectGetMaxY(self.firstResponderFocus);
221
216
  if (focusEnd > keyboardEndFrame.origin.y) {
@@ -247,7 +242,7 @@ RCTSendScrollEventForNativeAnimations_DEPRECATED(UIScrollView *scrollView, NSInt
247
242
  animations:^{
248
243
  self->_scrollView.contentInset = newEdgeInsets;
249
244
  self->_scrollView.verticalScrollIndicatorInsets = newEdgeInsets;
250
- [self scrollToOffset:newContentOffset animated:NO];
245
+ [self scrollTo:newContentOffset.x y:newContentOffset.y animated:NO];
251
246
  }
252
247
  completion:nil];
253
248
  }
@@ -99,9 +99,11 @@ static NSSet<NSNumber *> *returnKeyTypesSet;
99
99
  NSMutableDictionary<NSAttributedStringKey, id> *defaultAttributes =
100
100
  [_backedTextInputView.defaultTextAttributes mutableCopy];
101
101
 
102
+ #if !TARGET_OS_MACCATALYST
102
103
  RCTWeakEventEmitterWrapper *eventEmitterWrapper = [RCTWeakEventEmitterWrapper new];
103
104
  eventEmitterWrapper.eventEmitter = _eventEmitter;
104
105
  defaultAttributes[RCTAttributedStringEventEmitterKey] = eventEmitterWrapper;
106
+ #endif
105
107
 
106
108
  _backedTextInputView.defaultTextAttributes = defaultAttributes;
107
109
  }
@@ -262,8 +264,10 @@ static NSSet<NSNumber *> *returnKeyTypesSet;
262
264
  if (newTextInputProps.textAttributes != oldTextInputProps.textAttributes) {
263
265
  NSMutableDictionary<NSAttributedStringKey, id> *defaultAttributes =
264
266
  RCTNSTextAttributesFromTextAttributes(newTextInputProps.getEffectiveTextAttributes(RCTFontSizeMultiplier()));
267
+ #if !TARGET_OS_MACCATALYST
265
268
  defaultAttributes[RCTAttributedStringEventEmitterKey] =
266
269
  _backedTextInputView.defaultTextAttributes[RCTAttributedStringEventEmitterKey];
270
+ #endif
267
271
  _backedTextInputView.defaultTextAttributes = defaultAttributes;
268
272
  }
269
273
 
@@ -2963,6 +2963,7 @@ public abstract interface annotation class com/facebook/react/module/annotations
2963
2963
  public final class com/facebook/react/module/model/ReactModuleInfo {
2964
2964
  public static final field Companion Lcom/facebook/react/module/model/ReactModuleInfo$Companion;
2965
2965
  public fun <init> (Ljava/lang/String;Ljava/lang/String;ZZZZ)V
2966
+ public fun <init> (Ljava/lang/String;Ljava/lang/String;ZZZZZ)V
2966
2967
  public final fun canOverrideExistingModule ()Z
2967
2968
  public static final fun classIsTurboModule (Ljava/lang/Class;)Z
2968
2969
  public final fun className ()Ljava/lang/String;
@@ -7835,6 +7836,7 @@ public class com/facebook/react/views/view/ReactViewGroup : android/view/ViewGro
7835
7836
  protected fun dispatchSetPressed (Z)V
7836
7837
  public fun draw (Landroid/graphics/Canvas;)V
7837
7838
  protected fun drawChild (Landroid/graphics/Canvas;Landroid/view/View;J)Z
7839
+ public fun endViewTransition (Landroid/view/View;)V
7838
7840
  protected fun getChildDrawingOrder (II)I
7839
7841
  public fun getClippingRect (Landroid/graphics/Rect;)V
7840
7842
  public fun getHitSlopRect ()Landroid/graphics/Rect;
@@ -29,12 +29,7 @@
29
29
 
30
30
  #include <DefaultComponentsRegistry.h>
31
31
  #include <DefaultTurboModuleManagerDelegate.h>
32
- #if __has_include("<autolinking.h>")
33
- #define AUTOLINKING_AVAILABLE 1
34
32
  #include <autolinking.h>
35
- #else
36
- #define AUTOLINKING_AVAILABLE 0
37
- #endif
38
33
  #include <fbjni/fbjni.h>
39
34
  #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
40
35
  #include <rncore.h>
@@ -61,10 +56,8 @@ void registerComponents(
61
56
  REACT_NATIVE_APP_COMPONENT_REGISTRATION(registry);
62
57
  #endif
63
58
 
64
- #if AUTOLINKING_AVAILABLE
65
59
  // And we fallback to the components autolinked
66
60
  autolinking_registerProviders(registry);
67
- #endif
68
61
  }
69
62
 
70
63
  std::shared_ptr<TurboModule> cxxModuleProvider(
@@ -78,12 +71,8 @@ std::shared_ptr<TurboModule> cxxModuleProvider(
78
71
  // return std::make_shared<NativeCxxModuleExample>(jsInvoker);
79
72
  // }
80
73
 
81
- #if AUTOLINKING_AVAILABLE
82
74
  // And we fallback to the CXX module providers autolinked
83
75
  return autolinking_cxxModuleProvider(name, jsInvoker);
84
- #endif
85
-
86
- return nullptr;
87
76
  }
88
77
 
89
78
  std::shared_ptr<TurboModule> javaModuleProvider(
@@ -112,12 +101,10 @@ std::shared_ptr<TurboModule> javaModuleProvider(
112
101
  return module;
113
102
  }
114
103
 
115
- #if AUTOLINKING_AVAILABLE
116
104
  // And we fallback to the module providers autolinked
117
105
  if (auto module = autolinking_ModuleProvider(name, params)) {
118
106
  return module;
119
107
  }
120
- #endif
121
108
 
122
109
  return nullptr;
123
110
  }
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.77.0-rc.1
1
+ VERSION_NAME=0.77.0-rc.3
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
 
4
4
  android.useAndroidX=true
@@ -179,31 +179,30 @@ public abstract class HeadlessJsTaskService extends Service implements HeadlessJ
179
179
  }
180
180
 
181
181
  private void createReactContextAndScheduleTask(final HeadlessJsTaskConfig taskConfig) {
182
- final ReactHost reactHost = getReactHost();
183
-
184
- if (reactHost == null) { // old arch
185
- final ReactInstanceManager reactInstanceManager =
186
- getReactNativeHost().getReactInstanceManager();
187
-
188
- reactInstanceManager.addReactInstanceEventListener(
182
+ if (ReactNativeFeatureFlags.enableBridgelessArchitecture()) {
183
+ final ReactHost reactHost = getReactHost();
184
+ reactHost.addReactInstanceEventListener(
189
185
  new ReactInstanceEventListener() {
190
186
  @Override
191
187
  public void onReactContextInitialized(@NonNull ReactContext reactContext) {
192
188
  invokeStartTask(reactContext, taskConfig);
193
- reactInstanceManager.removeReactInstanceEventListener(this);
189
+ reactHost.removeReactInstanceEventListener(this);
194
190
  }
195
191
  });
196
- reactInstanceManager.createReactContextInBackground();
197
- } else { // new arch
198
- reactHost.addReactInstanceEventListener(
192
+ reactHost.start();
193
+ } else {
194
+ final ReactInstanceManager reactInstanceManager =
195
+ getReactNativeHost().getReactInstanceManager();
196
+
197
+ reactInstanceManager.addReactInstanceEventListener(
199
198
  new ReactInstanceEventListener() {
200
199
  @Override
201
200
  public void onReactContextInitialized(@NonNull ReactContext reactContext) {
202
201
  invokeStartTask(reactContext, taskConfig);
203
- reactHost.removeReactInstanceEventListener(this);
202
+ reactInstanceManager.removeReactInstanceEventListener(this);
204
203
  }
205
204
  });
206
- reactHost.start();
205
+ reactInstanceManager.createReactContextInBackground();
207
206
  }
208
207
  }
209
208
  }
@@ -21,6 +21,24 @@ public class ReactModuleInfo(
21
21
  public val isCxxModule: Boolean,
22
22
  public val isTurboModule: Boolean
23
23
  ) {
24
+
25
+ @Deprecated(
26
+ "This constructor is deprecated and will be removed in the future. Use ReactModuleInfo(String, String, boolean, boolean, boolean, boolean)]",
27
+ replaceWith =
28
+ ReplaceWith(
29
+ expression =
30
+ "ReactModuleInfo(name, className, canOverrideExistingModule, needsEagerInit, isCxxModule, isTurboModule)"),
31
+ level = DeprecationLevel.WARNING)
32
+ public constructor(
33
+ name: String,
34
+ className: String,
35
+ canOverrideExistingModule: Boolean,
36
+ needsEagerInit: Boolean,
37
+ @Suppress("UNUSED_PARAMETER") hasConstants: Boolean,
38
+ isCxxModule: Boolean,
39
+ isTurboModule: Boolean
40
+ ) : this(name, className, canOverrideExistingModule, needsEagerInit, isCxxModule, isTurboModule)
41
+
24
42
  public companion object {
25
43
  /**
26
44
  * Checks if the passed class is a TurboModule. Useful to populate the parameter [isTurboModule]
@@ -18,5 +18,5 @@ public class ReactNativeVersion {
18
18
  "major", 0,
19
19
  "minor", 77,
20
20
  "patch", 0,
21
- "prerelease", "rc.1");
21
+ "prerelease", "rc.3");
22
22
  }
@@ -62,9 +62,6 @@ public abstract class ReactClippingViewManager<T : ReactViewGroup> : ViewGroupMa
62
62
  if (removeClippedSubviews) {
63
63
  val child = getChildAt(parent, index)
64
64
  if (child != null) {
65
- if (child.parent != null) {
66
- parent.removeView(child)
67
- }
68
65
  parent.removeViewWithSubviewClippingEnabled(child)
69
66
  }
70
67
  } else {
@@ -56,6 +56,8 @@ import com.facebook.react.uimanager.style.BorderRadiusProp;
56
56
  import com.facebook.react.uimanager.style.BorderStyle;
57
57
  import com.facebook.react.uimanager.style.LogicalEdge;
58
58
  import com.facebook.react.uimanager.style.Overflow;
59
+ import java.util.HashSet;
60
+ import java.util.Set;
59
61
 
60
62
  /**
61
63
  * Backing for a React View. Has support for borders, but since borders aren't common, lazy
@@ -134,6 +136,7 @@ public class ReactViewGroup extends ViewGroup
134
136
  private @Nullable ViewGroupDrawingOrderHelper mDrawingOrderHelper;
135
137
  private float mBackfaceOpacity;
136
138
  private String mBackfaceVisibility;
139
+ private @Nullable Set<Integer> mChildrenRemovedWhileTransitioning;
137
140
 
138
141
  /**
139
142
  * Creates a new `ReactViewGroup` instance.
@@ -167,6 +170,7 @@ public class ReactViewGroup extends ViewGroup
167
170
  mDrawingOrderHelper = null;
168
171
  mBackfaceOpacity = 1.f;
169
172
  mBackfaceVisibility = "visible";
173
+ mChildrenRemovedWhileTransitioning = null;
170
174
  }
171
175
 
172
176
  /* package */ void recycleView() {
@@ -349,6 +353,7 @@ public class ReactViewGroup extends ViewGroup
349
353
  return;
350
354
  }
351
355
  mRemoveClippedSubviews = removeClippedSubviews;
356
+ mChildrenRemovedWhileTransitioning = null;
352
357
  if (removeClippedSubviews) {
353
358
  mClippingRect = new Rect();
354
359
  ReactClippingViewGroupHelper.calculateClippingRect(this, mClippingRect);
@@ -402,6 +407,26 @@ public class ReactViewGroup extends ViewGroup
402
407
  updateClippingToRect(mClippingRect);
403
408
  }
404
409
 
410
+ @Override
411
+ public void endViewTransition(View view) {
412
+ super.endViewTransition(view);
413
+ if (mChildrenRemovedWhileTransitioning != null) {
414
+ mChildrenRemovedWhileTransitioning.remove(view.getId());
415
+ }
416
+ }
417
+
418
+ private void trackChildViewTransition(int childId) {
419
+ if (mChildrenRemovedWhileTransitioning == null) {
420
+ mChildrenRemovedWhileTransitioning = new HashSet<>();
421
+ }
422
+ mChildrenRemovedWhileTransitioning.add(childId);
423
+ }
424
+
425
+ private boolean isChildRemovedWhileTransitioning(View child) {
426
+ return mChildrenRemovedWhileTransitioning != null
427
+ && mChildrenRemovedWhileTransitioning.contains(child.getId());
428
+ }
429
+
405
430
  private void updateClippingToRect(Rect clippingRect) {
406
431
  Assertions.assertNotNull(mAllChildren);
407
432
  int clippedSoFar = 0;
@@ -548,6 +573,12 @@ public class ReactViewGroup extends ViewGroup
548
573
  } else {
549
574
  setChildrenDrawingOrderEnabled(false);
550
575
  }
576
+
577
+ // The parent might not be null in case the child is transitioning.
578
+ if (child.getParent() != null) {
579
+ trackChildViewTransition(child.getId());
580
+ }
581
+
551
582
  super.onViewRemoved(child);
552
583
  }
553
584
 
@@ -18,7 +18,7 @@ constexpr struct {
18
18
  int32_t Major = 0;
19
19
  int32_t Minor = 77;
20
20
  int32_t Patch = 0;
21
- std::string_view Prerelease = "rc.1";
21
+ std::string_view Prerelease = "rc.3";
22
22
  } ReactNativeVersion;
23
23
 
24
24
  } // namespace facebook::react
@@ -403,6 +403,7 @@ static NSMutableAttributedString *RCTNSAttributedStringFragmentWithAttributesFro
403
403
  {
404
404
  auto nsAttributedStringFragment = RCTNSAttributedStringFragmentFromFragment(fragment, placeholderImage);
405
405
 
406
+ #if !TARGET_OS_MACCATALYST
406
407
  if (fragment.parentShadowView.componentHandle) {
407
408
  RCTWeakEventEmitterWrapper *eventEmitterWrapper = [RCTWeakEventEmitterWrapper new];
408
409
  eventEmitterWrapper.eventEmitter = fragment.parentShadowView.eventEmitter;
@@ -413,6 +414,7 @@ static NSMutableAttributedString *RCTNSAttributedStringFragmentWithAttributesFro
413
414
  [nsAttributedStringFragment addAttributes:additionalTextAttributes
414
415
  range:NSMakeRange(0, nsAttributedStringFragment.length)];
415
416
  }
417
+ #endif
416
418
 
417
419
  return nsAttributedStringFragment;
418
420
  }
@@ -236,47 +236,51 @@ std::string simpleBasename(const std::string& path) {
236
236
  */
237
237
  void ReactInstance::loadScript(
238
238
  std::unique_ptr<const JSBigString> script,
239
- const std::string& sourceURL) {
239
+ const std::string& sourceURL,
240
+ std::function<void(jsi::Runtime& runtime)>&& completion) {
240
241
  auto buffer = std::make_shared<BigStringBuffer>(std::move(script));
241
242
  std::string scriptName = simpleBasename(sourceURL);
242
243
 
243
- runtimeScheduler_->scheduleWork(
244
- [this,
245
- scriptName,
246
- sourceURL,
247
- buffer = std::move(buffer),
248
- weakBufferedRuntimeExecuter = std::weak_ptr<BufferedRuntimeExecutor>(
249
- bufferedRuntimeExecutor_)](jsi::Runtime& runtime) {
250
- SystraceSection s("ReactInstance::loadScript");
251
- bool hasLogger(ReactMarker::logTaggedMarkerBridgelessImpl);
252
- if (hasLogger) {
253
- ReactMarker::logTaggedMarkerBridgeless(
254
- ReactMarker::RUN_JS_BUNDLE_START, scriptName.c_str());
255
- }
244
+ runtimeScheduler_->scheduleWork([this,
245
+ scriptName,
246
+ sourceURL,
247
+ buffer = std::move(buffer),
248
+ weakBufferedRuntimeExecuter =
249
+ std::weak_ptr<BufferedRuntimeExecutor>(
250
+ bufferedRuntimeExecutor_),
251
+ completion](jsi::Runtime& runtime) {
252
+ SystraceSection s("ReactInstance::loadScript");
253
+ bool hasLogger(ReactMarker::logTaggedMarkerBridgelessImpl);
254
+ if (hasLogger) {
255
+ ReactMarker::logTaggedMarkerBridgeless(
256
+ ReactMarker::RUN_JS_BUNDLE_START, scriptName.c_str());
257
+ }
256
258
 
257
- runtime.evaluateJavaScript(buffer, sourceURL);
259
+ runtime.evaluateJavaScript(buffer, sourceURL);
258
260
 
259
- /**
260
- * TODO(T183610671): We need a safe/reliable way to enable the js
261
- * pipeline from javascript. Remove this after we figure that out, or
262
- * after we just remove the js pipeline.
263
- */
264
- if (!jsErrorHandler_->hasHandledFatalError()) {
265
- jsErrorHandler_->setRuntimeReady();
266
- }
261
+ /**
262
+ * TODO(T183610671): We need a safe/reliable way to enable the js
263
+ * pipeline from javascript. Remove this after we figure that out, or
264
+ * after we just remove the js pipeline.
265
+ */
266
+ if (!jsErrorHandler_->hasHandledFatalError()) {
267
+ jsErrorHandler_->setRuntimeReady();
268
+ }
267
269
 
268
- if (hasLogger) {
269
- ReactMarker::logTaggedMarkerBridgeless(
270
- ReactMarker::RUN_JS_BUNDLE_STOP, scriptName.c_str());
271
- ReactMarker::logMarkerBridgeless(
272
- ReactMarker::INIT_REACT_RUNTIME_STOP);
273
- ReactMarker::logMarkerBridgeless(ReactMarker::APP_STARTUP_STOP);
274
- }
275
- if (auto strongBufferedRuntimeExecuter =
276
- weakBufferedRuntimeExecuter.lock()) {
277
- strongBufferedRuntimeExecuter->flush();
278
- }
279
- });
270
+ if (hasLogger) {
271
+ ReactMarker::logTaggedMarkerBridgeless(
272
+ ReactMarker::RUN_JS_BUNDLE_STOP, scriptName.c_str());
273
+ ReactMarker::logMarkerBridgeless(ReactMarker::INIT_REACT_RUNTIME_STOP);
274
+ ReactMarker::logMarkerBridgeless(ReactMarker::APP_STARTUP_STOP);
275
+ }
276
+ if (auto strongBufferedRuntimeExecuter =
277
+ weakBufferedRuntimeExecuter.lock()) {
278
+ strongBufferedRuntimeExecuter->flush();
279
+ }
280
+ if (completion) {
281
+ completion(runtime);
282
+ }
283
+ });
280
284
  }
281
285
 
282
286
  /*
@@ -49,7 +49,8 @@ class ReactInstance final : private jsinspector_modern::InstanceTargetDelegate {
49
49
 
50
50
  void loadScript(
51
51
  std::unique_ptr<const JSBigString> script,
52
- const std::string& sourceURL);
52
+ const std::string& sourceURL,
53
+ std::function<void(jsi::Runtime& runtime)>&& completion = nullptr);
53
54
 
54
55
  void registerSegment(uint32_t segmentId, const std::string& segmentPath);
55
56
 
@@ -472,8 +472,9 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
472
472
 
473
473
  auto script = std::make_unique<NSDataBigString>(source.data);
474
474
  const auto *url = deriveSourceURL(source.url).UTF8String;
475
- _reactInstance->loadScript(std::move(script), url);
476
- [[NSNotificationCenter defaultCenter] postNotificationName:@"RCTInstanceDidLoadBundle" object:nil];
475
+ _reactInstance->loadScript(std::move(script), url, [](jsi::Runtime &_) {
476
+ [[NSNotificationCenter defaultCenter] postNotificationName:@"RCTInstanceDidLoadBundle" object:nil];
477
+ });
477
478
  }
478
479
 
479
480
  - (void)_handleJSError:(const JsErrorHandler::ParsedError &)error withRuntime:(jsi::Runtime &)runtime
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.77.0-rc.1",
3
+ "version": "0.77.0-rc.3",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -108,13 +108,13 @@
108
108
  },
109
109
  "dependencies": {
110
110
  "@jest/create-cache-key-function": "^29.6.3",
111
- "@react-native/assets-registry": "0.77.0-rc.1",
112
- "@react-native/codegen": "0.77.0-rc.1",
113
- "@react-native/community-cli-plugin": "0.77.0-rc.1",
114
- "@react-native/gradle-plugin": "0.77.0-rc.1",
115
- "@react-native/js-polyfills": "0.77.0-rc.1",
116
- "@react-native/normalize-colors": "0.77.0-rc.1",
117
- "@react-native/virtualized-lists": "0.77.0-rc.1",
111
+ "@react-native/assets-registry": "0.77.0-rc.3",
112
+ "@react-native/codegen": "0.77.0-rc.3",
113
+ "@react-native/community-cli-plugin": "0.77.0-rc.3",
114
+ "@react-native/gradle-plugin": "0.77.0-rc.3",
115
+ "@react-native/js-polyfills": "0.77.0-rc.3",
116
+ "@react-native/normalize-colors": "0.77.0-rc.3",
117
+ "@react-native/virtualized-lists": "0.77.0-rc.3",
118
118
  "abort-controller": "^3.0.0",
119
119
  "anser": "^1.4.9",
120
120
  "ansi-regex": "^5.0.0",
@@ -44,10 +44,10 @@ class ReactNativePodsUtils
44
44
  end
45
45
 
46
46
  def self.set_gcc_preprocessor_definition_for_React_hermes(installer)
47
- self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-hermes", "Debug")
48
- self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-jsinspector", "Debug")
49
- self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "hermes-engine", "Debug")
50
- self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-RuntimeHermes", "Debug")
47
+ self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-hermes", :debug)
48
+ self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-jsinspector", :debug)
49
+ self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "hermes-engine", :debug)
50
+ self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-RuntimeHermes", :debug)
51
51
  end
52
52
 
53
53
  def self.turn_off_resource_bundle_react_core(installer)
@@ -193,11 +193,11 @@ class ReactNativePodsUtils
193
193
 
194
194
  private
195
195
 
196
- def self.add_build_settings_to_pod(installer, settings_name, settings_value, target_pod_name, configuration)
196
+ def self.add_build_settings_to_pod(installer, settings_name, settings_value, target_pod_name, configuration_type)
197
197
  installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result|
198
198
  if pod_name.to_s == target_pod_name
199
199
  target_installation_result.native_target.build_configurations.each do |config|
200
- if configuration == nil || (configuration != nil && config.name.include?(configuration))
200
+ if configuration_type == nil || (configuration_type != nil && config.type == configuration_type)
201
201
  config.build_settings[settings_name] ||= '$(inherited) '
202
202
  config.build_settings[settings_name] << settings_value
203
203
  end
@@ -763,6 +763,16 @@ function findFilesWithExtension(filePath, extension) {
763
763
  const dir = fs.readdirSync(filePath);
764
764
  dir.forEach(file => {
765
765
  const absolutePath = path.join(filePath, file);
766
+ // Exclude files provided by react-native
767
+ if (absolutePath.includes(`${path.sep}react-native${path.sep}`)) {
768
+ return null;
769
+ }
770
+
771
+ // Skip hidden folders, that starts with `.`
772
+ if (absolutePath.includes(`${path.sep}.`)) {
773
+ return null;
774
+ }
775
+
766
776
  if (
767
777
  fs.existsSync(absolutePath) &&
768
778
  fs.statSync(absolutePath).isDirectory()
Binary file
Binary file
Binary file