react-native-tvos 0.83.9-0 → 0.83.10-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/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec +1 -1
- package/Libraries/Animated/components/AnimatedScrollView.js +1 -1
- package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +1 -1
- package/Libraries/Blob/React-RCTBlob.podspec +1 -1
- package/Libraries/Components/Button.js +2 -2
- package/Libraries/Components/ScrollView/ScrollView.d.ts +1 -1
- package/Libraries/Components/ScrollView/ScrollView.js +1 -1
- package/Libraries/Components/TV/TVViewPropTypes.js +9 -0
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
- package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
- package/Libraries/Components/View/View.js +7 -3
- package/Libraries/Components/View/ViewAccessibility.d.ts +1 -1
- package/Libraries/Components/View/ViewAccessibility.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/setUpNavigator.js +1 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +1 -1
- package/Libraries/FBLazyVector/FBLazyVector.podspec +1 -1
- package/Libraries/Image/ImageSource.d.ts +1 -1
- package/Libraries/Image/RCTImageLoader.mm +1 -1
- package/Libraries/Image/React-RCTImage.podspec +1 -1
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
- package/Libraries/NativeComponent/TVViewConfig.js +1 -0
- package/Libraries/Network/React-RCTNetwork.podspec +1 -1
- package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
- package/Libraries/Renderer/README.md +2 -2
- package/Libraries/Required/RCTRequired.podspec +1 -1
- package/Libraries/Settings/React-RCTSettings.podspec +1 -1
- package/Libraries/Text/React-RCTText.podspec +1 -1
- package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
- package/Libraries/Utilities/PolyfillFunctions.js +1 -1
- package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
- package/README-core.md +6 -6
- package/README.md +13 -1
- package/React/Base/RCTVersion.m +1 -1
- package/React/CoreModules/React-CoreModules.podspec +1 -1
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +49 -17
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +12 -1
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +34 -5
- package/React/React-RCTFBReactNativeSpec.podspec +1 -1
- package/React/React-RCTFabric.podspec +1 -1
- package/React/Runtime/React-RCTRuntime.podspec +1 -1
- package/React/Tests/Mounting/RCTViewComponentViewTests.mm +145 -0
- package/React/Views/ScrollView/RCTScrollView.m +1 -1
- package/React-Core.podspec +1 -1
- package/React.podspec +1 -1
- package/ReactAndroid/build.gradle.kts +1 -1
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/hermes-engine/build.gradle.kts +6 -0
- package/ReactAndroid/publish.gradle +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactAndroidHWInputDeviceHelper.java +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +14 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +14 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +46 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextSelectionWatcher.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +5 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
- package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +1 -1
- package/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec +1 -1
- package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec +1 -1
- package/ReactCommon/React-Fabric.podspec +1 -1
- package/ReactCommon/React-FabricComponents.podspec +1 -1
- package/ReactCommon/React-FabricImage.podspec +1 -1
- package/ReactCommon/React-Mapbuffer.podspec +1 -1
- package/ReactCommon/ReactCommon.podspec +1 -1
- package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
- package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/hermes/React-hermes.podspec +1 -1
- package/ReactCommon/hermes/executor/React-jsitracing.podspec +1 -1
- package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +1 -1
- package/ReactCommon/jsi/React-jsi.podspec +1 -1
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
- package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +7 -3
- package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -1
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +1 -5
- package/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec +1 -1
- package/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec +1 -1
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -1
- package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -1
- package/ReactCommon/logger/React-logger.podspec +1 -1
- package/ReactCommon/oscompat/React-oscompat.podspec +1 -1
- package/ReactCommon/react/debug/React-debug.podspec +1 -1
- package/ReactCommon/react/debug/redbox/JscSafeUrl.h +1 -1
- package/ReactCommon/react/featureflags/React-featureflags.podspec +1 -1
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +1 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +1 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +1 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +1 -1
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -1
- package/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec +1 -1
- package/ReactCommon/react/networking/React-networking.podspec +1 -1
- package/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec +1 -1
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -1
- package/ReactCommon/react/renderer/animated/internal/primitives.h +1 -1
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +7 -0
- package/ReactCommon/react/renderer/components/view/BaseViewProps.h +1 -0
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +18 -0
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +1 -0
- package/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +1 -1
- package/ReactCommon/react/renderer/css/React-renderercss.podspec +1 -1
- package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +1 -1
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -1
- package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -1
- package/ReactCommon/react/renderer/mounting/internal/CullingContext.cpp +1 -1
- package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -1
- package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -1
- package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -1
- package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +1 -1
- package/ReactCommon/react/timing/React-timing.podspec +1 -1
- package/ReactCommon/react/utils/React-utils.podspec +1 -1
- package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
- package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
- package/ReactCommon/yoga/Yoga.podspec +2 -2
- package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +2 -0
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +11 -7
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +2 -0
- package/ReactCommon/yoga/yoga/node/Node.cpp +6 -1
- package/package.json +9 -9
- package/scripts/cocoapods/rncore.rb +26 -8
- package/scripts/cocoapods/rndependencies.rb +26 -5
- package/scripts/cocoapods/spm.rb +1 -1
- package/scripts/cocoapods/utils.rb +2 -2
- package/scripts/codegen/templates/ReactAppDependencyProvider.podspec.template +1 -1
- package/scripts/codegen/templates/ReactCodegen.podspec.template +1 -1
- package/scripts/ios-configure-glog.sh +1 -1
- package/sdks/hermes-engine/hermes-engine.podspec +6 -1
- package/sdks/hermes-engine/hermes-utils.rb +27 -5
- package/src/private/types/HostInstance.js +1 -1
- package/src/types/globals.d.ts +2 -2
- package/third-party-podspecs/RCT-Folly.podspec +1 -1
- package/third-party-podspecs/ReactNativeDependencies.podspec +1 -1
- package/third-party-podspecs/glog.podspec +1 -1
- package/types/public/ReactNativeTVTypes.d.ts +9 -0
- package/types/public/ReactNativeTypes.d.ts +2 -2
package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java
CHANGED
|
@@ -567,29 +567,39 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
567
567
|
}
|
|
568
568
|
|
|
569
569
|
/**
|
|
570
|
-
* Attempts to scroll-snap to the focused child based on snapToAlignment/scrollSnapAlign
|
|
571
|
-
* Returns true if snap scrolling was performed, false otherwise.
|
|
570
|
+
* Attempts to scroll-snap to the focused child based on snapToAlignment/scrollSnapAlign
|
|
571
|
+
* or scrollSnapOffset. Returns true if snap scrolling was performed, false otherwise.
|
|
572
572
|
*/
|
|
573
573
|
private boolean tryScrollSnapToChild(View focused) {
|
|
574
574
|
if (mSnapToAlignment != SNAP_ALIGNMENT_ITEM) {
|
|
575
575
|
return false;
|
|
576
576
|
}
|
|
577
577
|
|
|
578
|
-
kotlin.
|
|
578
|
+
kotlin.Triple<View, String, Integer> result =
|
|
579
|
+
ReactScrollViewHelper.findScrollSnap(focused, this);
|
|
579
580
|
if (result == null) {
|
|
580
581
|
return false;
|
|
581
582
|
}
|
|
582
583
|
|
|
583
584
|
View snapTarget = result.getFirst();
|
|
584
585
|
String alignment = result.getSecond();
|
|
586
|
+
Integer snapOffset = result.getThird();
|
|
585
587
|
|
|
586
588
|
Rect rect = new Rect();
|
|
587
589
|
snapTarget.getDrawingRect(rect);
|
|
588
590
|
offsetDescendantRectToMyCoords(snapTarget, rect);
|
|
589
591
|
|
|
590
|
-
int viewportWidth = getWidth() - getPaddingLeft() - getPaddingRight();
|
|
591
592
|
int maxScrollX = Math.max(0, computeHorizontalScrollRange() - getWidth());
|
|
592
593
|
|
|
594
|
+
if (snapOffset != null) {
|
|
595
|
+
int targetOffset = ReactScrollViewHelper.computeScrollSnapTargetForOffset(
|
|
596
|
+
rect.left, snapOffset, mSnapInterval, maxScrollX);
|
|
597
|
+
reactSmoothScrollTo(targetOffset, getScrollY());
|
|
598
|
+
return true;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
int viewportWidth = getWidth() - getPaddingLeft() - getPaddingRight();
|
|
602
|
+
|
|
593
603
|
Integer targetOffset = ReactScrollViewHelper.computeScrollSnapOffset(
|
|
594
604
|
rect.left, rect.right, viewportWidth, alignment, mSnapInterval, mSnapToItemPadding, maxScrollX);
|
|
595
605
|
if (targetOffset == null) {
|
|
@@ -514,29 +514,39 @@ public class ReactScrollView extends ScrollView
|
|
|
514
514
|
}
|
|
515
515
|
|
|
516
516
|
/**
|
|
517
|
-
* Attempts to scroll-snap to the focused child based on snapToAlignment/scrollSnapAlign
|
|
518
|
-
* Returns true if snap scrolling was performed, false otherwise.
|
|
517
|
+
* Attempts to scroll-snap to the focused child based on snapToAlignment/scrollSnapAlign
|
|
518
|
+
* or scrollSnapOffset. Returns true if snap scrolling was performed, false otherwise.
|
|
519
519
|
*/
|
|
520
520
|
private boolean tryScrollSnapToChild(View focused) {
|
|
521
521
|
if (mSnapToAlignment != SNAP_ALIGNMENT_ITEM) {
|
|
522
522
|
return false;
|
|
523
523
|
}
|
|
524
524
|
|
|
525
|
-
kotlin.
|
|
525
|
+
kotlin.Triple<View, String, Integer> result =
|
|
526
|
+
ReactScrollViewHelper.findScrollSnap(focused, this);
|
|
526
527
|
if (result == null) {
|
|
527
528
|
return false;
|
|
528
529
|
}
|
|
529
530
|
|
|
530
531
|
View snapTarget = result.getFirst();
|
|
531
532
|
String alignment = result.getSecond();
|
|
533
|
+
Integer snapOffset = result.getThird();
|
|
532
534
|
|
|
533
535
|
Rect rect = new Rect();
|
|
534
536
|
snapTarget.getDrawingRect(rect);
|
|
535
537
|
offsetDescendantRectToMyCoords(snapTarget, rect);
|
|
536
538
|
|
|
537
|
-
int viewportHeight = getHeight() - getPaddingTop() - getPaddingBottom();
|
|
538
539
|
int maxScrollY = getMaxScrollY();
|
|
539
540
|
|
|
541
|
+
if (snapOffset != null) {
|
|
542
|
+
int targetOffset = ReactScrollViewHelper.computeScrollSnapTargetForOffset(
|
|
543
|
+
rect.top, snapOffset, mSnapInterval, maxScrollY);
|
|
544
|
+
reactSmoothScrollTo(getScrollX(), targetOffset);
|
|
545
|
+
return true;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
int viewportHeight = getHeight() - getPaddingTop() - getPaddingBottom();
|
|
549
|
+
|
|
540
550
|
Integer targetOffset = ReactScrollViewHelper.computeScrollSnapOffset(
|
|
541
551
|
rect.top, rect.bottom, viewportHeight, alignment, mSnapInterval, mSnapToItemPadding, maxScrollY);
|
|
542
552
|
if (targetOffset == null) {
|
|
@@ -576,27 +576,67 @@ public object ReactScrollViewHelper {
|
|
|
576
576
|
|
|
577
577
|
/**
|
|
578
578
|
* Walks up the view hierarchy from the focused view to find a ReactViewGroup with
|
|
579
|
-
* scrollSnapAlign set. Returns a
|
|
579
|
+
* either scrollSnapAlign or scrollSnapOffset set. Returns a Triple of (snapTarget,
|
|
580
|
+
* alignment, offsetPx) or null if neither marker was found. Exactly one of
|
|
581
|
+
* alignment/offsetPx is non-null on return.
|
|
582
|
+
*
|
|
583
|
+
* Walk is inner→outer, latest marker wins. On a single view declaring both,
|
|
584
|
+
* scrollSnapOffset wins as the more specific config.
|
|
580
585
|
*
|
|
581
586
|
* Shared by [ReactScrollView] and [ReactHorizontalScrollView].
|
|
582
587
|
*/
|
|
583
588
|
@JvmStatic
|
|
584
|
-
public fun
|
|
589
|
+
public fun findScrollSnap(focused: View, scrollView: ViewGroup): Triple<View, String?, Int?>? {
|
|
585
590
|
var view: View? = focused
|
|
586
591
|
var snapTarget: View? = null
|
|
587
592
|
var alignment: String? = null
|
|
593
|
+
var offset: Int? = null
|
|
588
594
|
while (view != null && view !== scrollView) {
|
|
589
595
|
if (view is ReactViewGroup) {
|
|
590
|
-
val
|
|
591
|
-
|
|
592
|
-
|
|
596
|
+
val o = view.scrollSnapOffset
|
|
597
|
+
val a = view.scrollSnapAlign
|
|
598
|
+
if (o != null) {
|
|
599
|
+
offset = o
|
|
600
|
+
alignment = null
|
|
601
|
+
snapTarget = view
|
|
602
|
+
} else if (a != null) {
|
|
603
|
+
alignment = a
|
|
604
|
+
offset = null
|
|
593
605
|
snapTarget = view
|
|
594
606
|
}
|
|
595
607
|
}
|
|
596
608
|
val parent = view.parent
|
|
597
609
|
view = if (parent is View) parent else null
|
|
598
610
|
}
|
|
599
|
-
return if (
|
|
611
|
+
return if (snapTarget != null && (alignment != null || offset != null))
|
|
612
|
+
Triple(snapTarget, alignment, offset) else null
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* Computes the target scroll offset for the per-item scrollSnapOffset path:
|
|
617
|
+
* land the snap target's leading edge at `snapOffset` pixels from the viewport origin.
|
|
618
|
+
*
|
|
619
|
+
* Returns the clamped target offset.
|
|
620
|
+
*
|
|
621
|
+
* Shared by [ReactScrollView] and [ReactHorizontalScrollView].
|
|
622
|
+
*
|
|
623
|
+
* @param focusedStart the start coordinate of the snap target in scroll view coordinates
|
|
624
|
+
* @param snapOffset the per-item pixel offset from the viewport origin
|
|
625
|
+
* @param snapInterval the snap interval (0 if not set)
|
|
626
|
+
* @param maxScrollOffset the maximum scroll offset for clamping
|
|
627
|
+
*/
|
|
628
|
+
@JvmStatic
|
|
629
|
+
public fun computeScrollSnapTargetForOffset(
|
|
630
|
+
focusedStart: Int,
|
|
631
|
+
snapOffset: Int,
|
|
632
|
+
snapInterval: Int,
|
|
633
|
+
maxScrollOffset: Int,
|
|
634
|
+
): Int {
|
|
635
|
+
var targetOffset = focusedStart - snapOffset
|
|
636
|
+
if (snapInterval > 0) {
|
|
637
|
+
targetOffset = (Math.floor(targetOffset.toDouble() / snapInterval) * snapInterval).toInt()
|
|
638
|
+
}
|
|
639
|
+
return Math.max(0, Math.min(targetOffset, maxScrollOffset))
|
|
600
640
|
}
|
|
601
641
|
|
|
602
642
|
/**
|
package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt
CHANGED
|
@@ -437,7 +437,7 @@ constructor(private val fpsListener: FpsListener? = null) :
|
|
|
437
437
|
// be on the wrong side. Thus we are moving it to the other side, when the list
|
|
438
438
|
// is inverted.
|
|
439
439
|
// See also:
|
|
440
|
-
// - https://github.com/
|
|
440
|
+
// - https://github.com/react/react-native/issues/35350
|
|
441
441
|
// - https://issuetracker.google.com/issues/287304310
|
|
442
442
|
if (applyFix) {
|
|
443
443
|
view.verticalScrollbarPosition = View.SCROLLBAR_POSITION_LEFT
|
|
@@ -405,7 +405,7 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
|
|
|
405
405
|
mContainsImages = update.containsImages();
|
|
406
406
|
// Android's TextView crashes when it tries to relayout if LayoutParams are
|
|
407
407
|
// null; explicitly set the LayoutParams to prevent this crash. See:
|
|
408
|
-
// https://github.com/
|
|
408
|
+
// https://github.com/react/react-native/pull/7011
|
|
409
409
|
if (getLayoutParams() == null) {
|
|
410
410
|
setLayoutParams(EMPTY_LAYOUT_PARAMS);
|
|
411
411
|
}
|
|
@@ -781,7 +781,7 @@ public open class ReactEditText public constructor(context: Context) : AppCompat
|
|
|
781
781
|
/**
|
|
782
782
|
* Remove spans from the SpannableStringBuilder which can be represented by TextAppearance
|
|
783
783
|
* attributes on the underlying EditText. This works around instability on Samsung devices with
|
|
784
|
-
* the presence of spans https://github.com/
|
|
784
|
+
* the presence of spans https://github.com/react/react-native/issues/35936 (S318090)
|
|
785
785
|
*/
|
|
786
786
|
private fun stripStyleEquivalentSpans(sb: SpannableStringBuilder) {
|
|
787
787
|
stripSpansOfKind(sb, ReactAbsoluteSizeSpan::class.java) { span: ReactAbsoluteSizeSpan ->
|
|
@@ -1047,7 +1047,7 @@ public open class ReactEditText public constructor(context: Context) : AppCompat
|
|
|
1047
1047
|
val selectionEnd = selectionEnd
|
|
1048
1048
|
|
|
1049
1049
|
// Used to ensure that text is selectable inside of removeClippedSubviews
|
|
1050
|
-
// See https://github.com/
|
|
1050
|
+
// See https://github.com/react/react-native/issues/6805 for original
|
|
1051
1051
|
// fix that was ported to here.
|
|
1052
1052
|
super.setTextIsSelectable(true)
|
|
1053
1053
|
|
package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt
CHANGED
|
@@ -414,7 +414,7 @@ public open class ReactTextInputManager public constructor() :
|
|
|
414
414
|
return
|
|
415
415
|
}
|
|
416
416
|
|
|
417
|
-
// Based on https://github.com/
|
|
417
|
+
// Based on https://github.com/react/react-native/pull/31007
|
|
418
418
|
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.P) {
|
|
419
419
|
return
|
|
420
420
|
}
|
|
@@ -770,7 +770,7 @@ public open class ReactTextInputManager public constructor() :
|
|
|
770
770
|
// crash happens when focusing on a email EditText, during which a prompt will be triggered
|
|
771
771
|
// but
|
|
772
772
|
// the system fail to locate it properly. Here is an example post discussing about this
|
|
773
|
-
// issue: https://github.com/
|
|
773
|
+
// issue: https://github.com/react/react-native/issues/27204
|
|
774
774
|
if (shouldHideCursorForEmailTextInput()) {
|
|
775
775
|
view.isCursorVisible = false
|
|
776
776
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextSelectionWatcher.kt
CHANGED
|
@@ -30,7 +30,7 @@ internal class ReactTextSelectionWatcher(private val editText: ReactEditText) :
|
|
|
30
30
|
// forward it on if we have new values
|
|
31
31
|
|
|
32
32
|
// Apparently Android might call this with an end value that is less than the start value
|
|
33
|
-
// Lets normalize them. See https://github.com/
|
|
33
|
+
// Lets normalize them. See https://github.com/react/react-native/issues/18579
|
|
34
34
|
val realStart = min(start.toDouble(), end.toDouble()).toInt()
|
|
35
35
|
val realEnd = max(start.toDouble(), end.toDouble()).toInt()
|
|
36
36
|
|
|
@@ -174,6 +174,7 @@ public open class ReactViewGroup public constructor(context: Context?) :
|
|
|
174
174
|
private var onInterceptTouchEventListener: OnInterceptTouchEventListener? = null
|
|
175
175
|
private var needsOffscreenAlphaCompositing = false
|
|
176
176
|
public var scrollSnapAlign: String? = null
|
|
177
|
+
public var scrollSnapOffset: Int? = null
|
|
177
178
|
private var backfaceOpacity = 0f
|
|
178
179
|
private var backfaceVisible = false
|
|
179
180
|
private var childrenRemovedWhileTransitioning: MutableSet<Int>? = null
|
|
@@ -195,6 +195,11 @@ public open class ReactViewManager : ReactClippingViewManager<ReactViewGroup>()
|
|
|
195
195
|
view.scrollSnapAlign = value
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
+
@ReactProp(name = "scrollSnapOffset", defaultFloat = Float.NaN)
|
|
199
|
+
public open fun setScrollSnapOffset(view: ReactViewGroup, value: Float) {
|
|
200
|
+
view.scrollSnapOffset = if (value.isNaN()) null else value.dpToPx().toInt()
|
|
201
|
+
}
|
|
202
|
+
|
|
198
203
|
@ReactProp(name = ViewProps.BACKGROUND_IMAGE, customType = "BackgroundImage")
|
|
199
204
|
public open fun setBackgroundImage(view: ReactViewGroup, backgroundImage: ReadableArray?) {
|
|
200
205
|
if (ViewUtil.getUIManagerType(view) == UIManagerType.FABRIC) {
|
package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
#include <fbjni/ByteBuffer.h>
|
|
9
|
+
|
|
8
10
|
#include "JCxxInspectorPackagerConnectionWebSocket.h"
|
|
9
11
|
|
|
10
12
|
using namespace facebook::jni;
|
|
@@ -12,10 +14,35 @@ using namespace facebook::react::jsinspector_modern;
|
|
|
12
14
|
|
|
13
15
|
namespace facebook::react::jsinspector_modern {
|
|
14
16
|
|
|
17
|
+
namespace {
|
|
18
|
+
|
|
19
|
+
local_ref<JByteBuffer::javaobject> getReadOnlyByteBufferFromStringView(
|
|
20
|
+
std::string_view sv) {
|
|
21
|
+
auto buffer = JByteBuffer::wrapBytes(
|
|
22
|
+
const_cast<uint8_t*>(reinterpret_cast<const uint8_t*>(sv.data())),
|
|
23
|
+
sv.size());
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Return a read-only buffer that shares the underlying contents.
|
|
27
|
+
* This guards from accidential mutations on the Java side, since we did
|
|
28
|
+
* casting above.
|
|
29
|
+
*
|
|
30
|
+
* https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html#asReadOnlyBuffer--
|
|
31
|
+
*/
|
|
32
|
+
static auto method =
|
|
33
|
+
buffer->javaClassStatic()->getMethod<JByteBuffer::javaobject()>(
|
|
34
|
+
"asReadOnlyBuffer");
|
|
35
|
+
return method(buffer);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
} // namespace
|
|
39
|
+
|
|
15
40
|
void JCxxInspectorPackagerConnectionWebSocket::send(std::string_view message) {
|
|
16
41
|
static auto method =
|
|
17
|
-
javaClassStatic()->getMethod<void(
|
|
18
|
-
|
|
42
|
+
javaClassStatic()->getMethod<void(local_ref<JByteBuffer::javaobject>)>(
|
|
43
|
+
"send");
|
|
44
|
+
auto byteBuffer = getReadOnlyByteBufferFromStringView(message);
|
|
45
|
+
method(self(), byteBuffer);
|
|
19
46
|
}
|
|
20
47
|
|
|
21
48
|
void JCxxInspectorPackagerConnectionWebSocket::close() {
|
|
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
|
|
|
14
14
|
s.author = "Meta Platforms, Inc. and its affiliates"
|
|
15
15
|
s.license = package["license"]
|
|
16
16
|
s.homepage = "https://reactnative.dev/"
|
|
17
|
-
s.source = { :git => 'https://github.com/
|
|
17
|
+
s.source = { :git => 'https://github.com/react/react-native.git', :tag => 'v#{version}' }
|
|
18
18
|
s.summary = "Macros for marking APIs as deprecated"
|
|
19
19
|
s.source_files = podspec_sources(["Exported/*.h", "RCTDeprecation.m"], "Exported/*.h")
|
|
20
20
|
s.pod_target_xcconfig = {
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we're presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we're presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -9,7 +9,7 @@ require "json"
|
|
|
9
9
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
10
10
|
version = package['version']
|
|
11
11
|
|
|
12
|
-
source = { :git => 'https://github.com/
|
|
12
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
13
13
|
if version == '1000.0.0'
|
|
14
14
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
15
15
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
|
|
15
15
|
#define REACT_NATIVE_VERSION_MAJOR 0
|
|
16
16
|
#define REACT_NATIVE_VERSION_MINOR 83
|
|
17
|
-
#define REACT_NATIVE_VERSION_PATCH
|
|
17
|
+
#define REACT_NATIVE_VERSION_PATCH 10
|
|
18
18
|
|
|
19
19
|
namespace facebook::react {
|
|
20
20
|
|
|
21
21
|
constexpr struct {
|
|
22
22
|
int32_t Major = 0;
|
|
23
23
|
int32_t Minor = 83;
|
|
24
|
-
int32_t Patch =
|
|
24
|
+
int32_t Patch = 10;
|
|
25
25
|
std::string_view Prerelease = "0";
|
|
26
26
|
} ReactNativeVersion;
|
|
27
27
|
|
|
@@ -9,7 +9,7 @@ require "json"
|
|
|
9
9
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
10
10
|
version = package['version']
|
|
11
11
|
|
|
12
|
-
source = { :git => 'https://github.com/
|
|
12
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
13
13
|
if version == '1000.0.0'
|
|
14
14
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
15
15
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "../../..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -143,9 +143,13 @@ int InspectorImpl::addPage(
|
|
|
143
143
|
pageId,
|
|
144
144
|
Page{pageId, description, vm, std::move(connectFunc), capabilities});
|
|
145
145
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
146
|
+
// Strong assumption: If prefersFuseboxFrontend is set, the page added is a
|
|
147
|
+
// HostTarget and not a legacy Hermes runtime target.
|
|
148
|
+
if (capabilities.prefersFuseboxFrontend) {
|
|
149
|
+
for (const auto& listenerWeak : listeners_) {
|
|
150
|
+
if (auto listener = listenerWeak.lock()) {
|
|
151
|
+
listener->unstable_onHostTargetAdded();
|
|
152
|
+
}
|
|
149
153
|
}
|
|
150
154
|
}
|
|
151
155
|
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -26,12 +26,8 @@ const uint16_t TRACE_EVENT_CHUNK_SIZE = 1000;
|
|
|
26
26
|
/**
|
|
27
27
|
* The maximum number of ProfileChunk trace events
|
|
28
28
|
* that will be sent in a single CDP Tracing.dataCollected message.
|
|
29
|
-
* TODO(T219394401): Increase the size once we manage the queue on OkHTTP
|
|
30
|
-
side
|
|
31
|
-
* properly and avoid WebSocket disconnections when sending a message larger
|
|
32
|
-
* than 16MB.
|
|
33
29
|
*/
|
|
34
|
-
const uint16_t PROFILE_TRACE_EVENT_CHUNK_SIZE =
|
|
30
|
+
const uint16_t PROFILE_TRACE_EVENT_CHUNK_SIZE = 10;
|
|
35
31
|
|
|
36
32
|
} // namespace
|
|
37
33
|
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -9,7 +9,7 @@ require "json"
|
|
|
9
9
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
10
10
|
version = package['version']
|
|
11
11
|
|
|
12
|
-
source = { :git => 'https://github.com/
|
|
12
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
13
13
|
if version == '1000.0.0'
|
|
14
14
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
15
15
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
@@ -17,7 +17,7 @@ namespace facebook::react::unstable_redbox {
|
|
|
17
17
|
* by query string stripping of URLs in JavaScriptCore stack traces
|
|
18
18
|
* introduced in iOS 16.4. This is a direct port of https://www.npmjs.com/package/jsc-safe-url.
|
|
19
19
|
*
|
|
20
|
-
* See https://github.com/
|
|
20
|
+
* See https://github.com/react/react-native/issues/36794 for context.
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
bool isJscSafeUrl(std::string_view url);
|
|
@@ -8,7 +8,7 @@ require "json"
|
|
|
8
8
|
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "..", "package.json")))
|
|
9
9
|
version = package['version']
|
|
10
10
|
|
|
11
|
-
source = { :git => 'https://github.com/
|
|
11
|
+
source = { :git => 'https://github.com/react/react-native.git' }
|
|
12
12
|
if version == '1000.0.0'
|
|
13
13
|
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
|
14
14
|
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp
CHANGED
|
@@ -993,7 +993,7 @@ void JavaTurboModule::configureEventEmitterCallback() {
|
|
|
993
993
|
args[0].l = callback.release();
|
|
994
994
|
|
|
995
995
|
// CallVoidMethod is replaced with CallVoidMethodA as it's unsafe on 32bit and
|
|
996
|
-
// causes crashes https://github.com/
|
|
996
|
+
// causes crashes https://github.com/react/react-native/issues/51628
|
|
997
997
|
env->CallVoidMethodA(instance_.get(), cachedMethodId, args);
|
|
998
998
|
FACEBOOK_JNI_THROW_PENDING_EXCEPTION();
|
|
999
999
|
}
|