react-native-tvos 0.83.6-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/RCTJscSafeUrl+Internal.h +23 -0
- package/React/CoreModules/RCTJscSafeUrl.mm +38 -0
- package/React/CoreModules/RCTRedBox+Internal.h +42 -0
- package/React/CoreModules/RCTRedBox.mm +30 -471
- package/React/CoreModules/RCTRedBox2AnsiParser+Internal.h +22 -0
- package/React/CoreModules/RCTRedBox2AnsiParser.mm +55 -0
- package/React/CoreModules/RCTRedBox2Controller+Internal.h +34 -0
- package/React/CoreModules/RCTRedBox2Controller.mm +764 -0
- package/React/CoreModules/RCTRedBox2ErrorParser+Internal.h +46 -0
- package/React/CoreModules/RCTRedBox2ErrorParser.mm +57 -0
- package/React/CoreModules/RCTRedBoxController+Internal.h +31 -0
- package/React/CoreModules/RCTRedBoxController.mm +447 -0
- package/React/CoreModules/RCTRedBoxHMRClient+Internal.h +26 -0
- package/React/CoreModules/RCTRedBoxHMRClient.mm +125 -0
- package/React/CoreModules/React-CoreModules.podspec +2 -1
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +24 -0
- 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 +35 -7
- 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 +20 -46
- 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/internal/featureflags/ReactNativeFeatureFlags.kt +19 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +31 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +34 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +7 -1
- 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/CMakeLists.txt +7 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +43 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +10 -1
- 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 +7 -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/CMakeLists.txt +2 -1
- package/ReactCommon/react/debug/React-debug.podspec +8 -2
- package/ReactCommon/react/debug/redbox/AnsiParser.cpp +139 -0
- package/ReactCommon/react/debug/redbox/AnsiParser.h +35 -0
- package/ReactCommon/react/debug/redbox/JscSafeUrl.cpp +179 -0
- package/ReactCommon/react/debug/redbox/JscSafeUrl.h +27 -0
- package/ReactCommon/react/debug/redbox/RedBoxErrorParser.cpp +171 -0
- package/ReactCommon/react/debug/redbox/RedBoxErrorParser.h +40 -0
- package/ReactCommon/react/debug/redbox/tests/AnsiParserTest.cpp +97 -0
- package/ReactCommon/react/debug/redbox/tests/JscSafeUrlTest.cpp +173 -0
- package/ReactCommon/react/debug/redbox/tests/RedBoxErrorParserTest.cpp +107 -0
- package/ReactCommon/react/featureflags/React-featureflags.podspec +1 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +13 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +16 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +106 -52
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +8 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +13 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +28 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +4 -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/CMakeLists.txt +1 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +2 -1
- package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +16 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +7 -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/NativeMutationObserver.h +4 -0
- package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +66 -0
- 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/scripts/react_native_pods.rb +1 -0
- package/sdks/hermes-engine/hermes-engine.podspec +6 -1
- package/sdks/hermes-engine/hermes-utils.rb +27 -5
- package/src/private/featureflags/ReactNativeFeatureFlags.js +16 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +4 -1
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
- 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
|
@@ -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")
|
|
@@ -31,7 +31,7 @@ import {cloneElement, useMemo} from 'react';
|
|
|
31
31
|
type AnimatedScrollViewInstance = React.ElementRef<typeof ScrollView>;
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
|
-
* @see https://github.com/
|
|
34
|
+
* @see https://github.com/react/react-native/commit/b8c8562
|
|
35
35
|
*/
|
|
36
36
|
const AnimatedScrollView: AnimatedComponentType<
|
|
37
37
|
ScrollViewProps,
|
|
@@ -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")
|
|
@@ -127,7 +127,7 @@ export type ButtonProps = $ReadOnly<{
|
|
|
127
127
|
accessibilityLabel?: ?string,
|
|
128
128
|
/**
|
|
129
129
|
* Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel
|
|
130
|
-
* https://github.com/
|
|
130
|
+
* https://github.com/react/react-native/issues/34424
|
|
131
131
|
*/
|
|
132
132
|
'aria-label'?: ?string,
|
|
133
133
|
/**
|
|
@@ -181,7 +181,7 @@ export type ButtonProps = $ReadOnly<{
|
|
|
181
181
|
[button:examples].
|
|
182
182
|
|
|
183
183
|
[button:source]:
|
|
184
|
-
https://github.com/
|
|
184
|
+
https://github.com/react/react-native/blob/HEAD/Libraries/Components/Button.js
|
|
185
185
|
|
|
186
186
|
[button:examples]:
|
|
187
187
|
https://js.coach/?menu%5Bcollections%5D=React%20Native&page=1&query=button
|
|
@@ -515,7 +515,7 @@ export interface ScrollViewPropsIOS {
|
|
|
515
515
|
* - `start` (the default) will align the snap at the left (horizontal) or top (vertical)
|
|
516
516
|
* - `center` will align the snap in the center
|
|
517
517
|
* - `end` will align the snap at the right (horizontal) or bottom (vertical)
|
|
518
|
-
* - `item` will align the snap according to
|
|
518
|
+
* - `item` will align the snap according to each item's own `scrollSnapAlign` or `scrollSnapOffset` prop (TV platforms only).
|
|
519
519
|
*/
|
|
520
520
|
snapToAlignment?: 'start' | 'center' | 'end' | 'item' | undefined;
|
|
521
521
|
|
|
@@ -612,7 +612,7 @@ type ScrollViewBaseProps = $ReadOnly<{
|
|
|
612
612
|
* - `'start'` (the default) will align the snap at the left (horizontal) or top (vertical)
|
|
613
613
|
* - `'center'` will align the snap in the center
|
|
614
614
|
* - `'end'` will align the snap at the right (horizontal) or bottom (vertical)
|
|
615
|
-
* - `'item'` will align the snap according to
|
|
615
|
+
* - `'item'` will align the snap according to each item's own `scrollSnapAlign` or `scrollSnapOffset` prop (TV platforms only).
|
|
616
616
|
*/
|
|
617
617
|
snapToAlignment?: ?('start' | 'center' | 'end' | 'item'),
|
|
618
618
|
/**
|
|
@@ -131,4 +131,13 @@ export type TVViewProps = $ReadOnly<{|
|
|
|
131
131
|
*/
|
|
132
132
|
scrollSnapAlign?: ?('start' | 'center' | 'end'),
|
|
133
133
|
|
|
134
|
+
/**
|
|
135
|
+
* Per-item scroll snap offset in dp/pt. When set on a View inside a
|
|
136
|
+
* ScrollView with `snapToAlignment="item"`, the focus engine lands the
|
|
137
|
+
* View's top at viewport y = scrollSnapOffset. Standalone alternative to
|
|
138
|
+
* `scrollSnapAlign` — set one or the other; if both are set on the same
|
|
139
|
+
* View, `scrollSnapOffset` takes precedence.
|
|
140
|
+
*/
|
|
141
|
+
scrollSnapOffset?: ?number,
|
|
142
|
+
|
|
134
143
|
|}>;
|
|
@@ -553,7 +553,7 @@ export type AndroidTextInputNativeProps = $ReadOnly<{
|
|
|
553
553
|
* - `borderBottomRightRadius`
|
|
554
554
|
* - `borderBottomLeftRadius`
|
|
555
555
|
*
|
|
556
|
-
* see [Issue#7070](https://github.com/
|
|
556
|
+
* see [Issue#7070](https://github.com/react/react-native/issues/7070)
|
|
557
557
|
* for more detail.
|
|
558
558
|
*
|
|
559
559
|
* [Styles](docs/style.html)
|
|
@@ -1007,7 +1007,7 @@ type TextInputBaseProps = $ReadOnly<{
|
|
|
1007
1007
|
* - `borderBottomRightRadius`
|
|
1008
1008
|
* - `borderBottomLeftRadius`
|
|
1009
1009
|
*
|
|
1010
|
-
* see [Issue#7070](https://github.com/
|
|
1010
|
+
* see [Issue#7070](https://github.com/react/react-native/issues/7070)
|
|
1011
1011
|
* for more detail.
|
|
1012
1012
|
*
|
|
1013
1013
|
* [Styles](docs/style.html)
|
|
@@ -32,7 +32,7 @@ export const Touchable: {
|
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
* @see https://github.com/
|
|
35
|
+
* @see https://github.com/react/react-native/blob/0.34-stable\Libraries\Components\Touchable\Touchable.js
|
|
36
36
|
*/
|
|
37
37
|
interface TouchableMixin {
|
|
38
38
|
/**
|
|
@@ -153,9 +153,13 @@ component View(
|
|
|
153
153
|
delete processedProps.isTVSelectable;
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
// Views with scrollSnapAlign must not be flattened by
|
|
157
|
-
// the prop never reaches the native view and scroll
|
|
158
|
-
|
|
156
|
+
// Views with scrollSnapAlign or scrollSnapOffset must not be flattened by
|
|
157
|
+
// Fabric, otherwise the prop never reaches the native view and scroll
|
|
158
|
+
// snapping breaks.
|
|
159
|
+
if (
|
|
160
|
+
processedProps.scrollSnapAlign != null ||
|
|
161
|
+
processedProps.scrollSnapOffset != null
|
|
162
|
+
) {
|
|
159
163
|
processedProps.collapsable = false;
|
|
160
164
|
}
|
|
161
165
|
|
|
@@ -34,7 +34,7 @@ export interface AccessibilityProps
|
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel
|
|
37
|
-
* https://github.com/
|
|
37
|
+
* https://github.com/react/react-native/issues/34424
|
|
38
38
|
*/
|
|
39
39
|
'aria-label'?: string | undefined;
|
|
40
40
|
|
|
@@ -370,7 +370,7 @@ export type AccessibilityProps = $ReadOnly<{
|
|
|
370
370
|
|
|
371
371
|
/**
|
|
372
372
|
* Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel
|
|
373
|
-
* https://github.com/
|
|
373
|
+
* https://github.com/react/react-native/issues/34424
|
|
374
374
|
*/
|
|
375
375
|
'aria-label'?: ?Stringish,
|
|
376
376
|
|
|
@@ -158,7 +158,7 @@ function _callReactNativeMicrotasksPass() {
|
|
|
158
158
|
reactNativeMicrotasks = [];
|
|
159
159
|
|
|
160
160
|
// Use for loop rather than forEach as per @vjeux's advice
|
|
161
|
-
// https://github.com/
|
|
161
|
+
// https://github.com/react/react-native/commit/c8fd9f7588ad02d2293cac7224715f4af7b0f352#commitcomment-14570051
|
|
162
162
|
for (let i = 0; i < passReactNativeMicrotasks.length; ++i) {
|
|
163
163
|
_callTimer(passReactNativeMicrotasks[i], 0);
|
|
164
164
|
}
|
|
@@ -17,6 +17,6 @@ if (navigator === undefined) {
|
|
|
17
17
|
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
|
|
18
18
|
global.navigator = {product: 'ReactNative'};
|
|
19
19
|
} else {
|
|
20
|
-
// see https://github.com/
|
|
20
|
+
// see https://github.com/react/react-native/issues/10881
|
|
21
21
|
polyfillObjectProperty(navigator, 'product', () => 'ReactNative');
|
|
22
22
|
}
|
|
@@ -20,7 +20,7 @@ export interface NativeEventSubscription {
|
|
|
20
20
|
* Receive events from native-code
|
|
21
21
|
* Deprecated - subclass NativeEventEmitter to create granular event modules instead of
|
|
22
22
|
* adding all event listeners directly to RCTNativeAppEventEmitter.
|
|
23
|
-
* @see https://github.com/
|
|
23
|
+
* @see https://github.com/react/react-native/blob/0.34-stable\Libraries\EventEmitter\RCTNativeAppEventEmitter.js
|
|
24
24
|
* @see https://reactnative.dev/docs/native-modules-ios#sending-events-to-javascript
|
|
25
25
|
*/
|
|
26
26
|
type RCTNativeAppEventEmitter = DeviceEventEmitterStatic;
|
|
@@ -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")
|
|
@@ -517,7 +517,7 @@ static RCTImageLoaderCancellationBlock RCTLoadImageURLFromLoader(
|
|
|
517
517
|
// Add missing png extension
|
|
518
518
|
if (request.URL.fileURL && request.URL.pathExtension.length == 0) {
|
|
519
519
|
// Check if there exists a file with that url on disk already
|
|
520
|
-
// This should fix issue https://github.com/
|
|
520
|
+
// This should fix issue https://github.com/react/react-native/issues/46870
|
|
521
521
|
if ([[NSFileManager defaultManager] fileExistsAtPath:request.URL.path]) {
|
|
522
522
|
mutableRequest.URL = request.URL;
|
|
523
523
|
} else {
|
|
@@ -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")
|
|
@@ -117,7 +117,7 @@ const currentCentroidY = TouchHistoryMath.currentCentroidY;
|
|
|
117
117
|
* ### Working Example
|
|
118
118
|
*
|
|
119
119
|
* To see it in action, try the
|
|
120
|
-
* [PanResponder example in RNTester](https://github.com/
|
|
120
|
+
* [PanResponder example in RNTester](https://github.com/react/react-native/blob/HEAD/packages/rn-tester/js/examples/PanResponder/PanResponderExample.js)
|
|
121
121
|
*/
|
|
122
122
|
|
|
123
123
|
export type PanResponderGestureState = {
|
|
@@ -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")
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
This page describes how React and React Native versions interact each other.
|
|
4
4
|
The version alignment between the two frameworks relies on two synchronization points:
|
|
5
5
|
|
|
6
|
-
1. The versions in the `package.json` of the new app template. For example [for React Native 0.68.1](https://github.com/
|
|
6
|
+
1. The versions in the `package.json` of the new app template. For example [for React Native 0.68.1](https://github.com/react/react-native/blob/0.68-stable/template/package.json#L12-L15) the versions are aligned as follows:
|
|
7
7
|
|
|
8
8
|
```
|
|
9
9
|
"dependencies": {
|
|
@@ -12,7 +12,7 @@ The version alignment between the two frameworks relies on two synchronization p
|
|
|
12
12
|
},
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
1. The React renderers **shipped** with React Native inside this folder, the [./Libraries/Renderer](https://github.com/
|
|
15
|
+
1. The React renderers **shipped** with React Native inside this folder, the [./Libraries/Renderer](https://github.com/react/react-native/tree/main/Libraries/Renderer) folder, of React Native.
|
|
16
16
|
|
|
17
17
|
This practically means that you **can't bump** the version of React in your `package.json` to a later version,
|
|
18
18
|
as you will still be using the older renderer from the folder mentioned above. Bumping the react version in your `package.json` will lead to unexpected behaviors.
|
|
@@ -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")
|
|
@@ -23,7 +23,7 @@ const defineLazyObjectProperty = require('./defineLazyObjectProperty').default;
|
|
|
23
23
|
*
|
|
24
24
|
* global.XMLHttpRequest = global.originalXMLHttpRequest;
|
|
25
25
|
*
|
|
26
|
-
* @see https://github.com/
|
|
26
|
+
* @see https://github.com/react/react-native/issues/934
|
|
27
27
|
*/
|
|
28
28
|
export function polyfillObjectProperty<T>(
|
|
29
29
|
object: {...},
|
|
@@ -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/README-core.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
|
-
<a href="https://github.com/
|
|
13
|
+
<a href="https://github.com/react/react-native/blob/HEAD/LICENSE">
|
|
14
14
|
<img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="React Native is released under the MIT license." />
|
|
15
15
|
</a>
|
|
16
16
|
<a href="https://www.npmjs.org/package/react-native">
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
<span> · </span>
|
|
39
39
|
<a href="https://reactnative.dev/help">Community</a>
|
|
40
40
|
<span> · </span>
|
|
41
|
-
<a href="https://github.com/
|
|
41
|
+
<a href="https://github.com/react/react-native/blob/HEAD/.github/SUPPORT.md">Support</a>
|
|
42
42
|
</h3>
|
|
43
43
|
|
|
44
44
|
React Native brings [**React**'s][r] declarative UI framework to iOS and Android. With React Native, you use native UI controls and have full access to the native platform.
|
|
@@ -52,7 +52,7 @@ React Native is developed and supported by many companies and individual core co
|
|
|
52
52
|
|
|
53
53
|
[r]: https://react.dev/
|
|
54
54
|
[p]: https://reactnative.dev/docs/out-of-tree-platforms
|
|
55
|
-
[e]: https://github.com/
|
|
55
|
+
[e]: https://github.com/react/react-native/blob/HEAD/ECOSYSTEM.md
|
|
56
56
|
|
|
57
57
|
## Contents
|
|
58
58
|
|
|
@@ -123,13 +123,13 @@ Read our [**Contributing Guide**][contribute] to learn about our development pro
|
|
|
123
123
|
|
|
124
124
|
You can learn more about our vision for React Native in the [**Roadmap**][roadmap].
|
|
125
125
|
|
|
126
|
-
[roadmap]: https://github.com/
|
|
126
|
+
[roadmap]: https://github.com/react/react-native/wiki/Roadmap
|
|
127
127
|
|
|
128
128
|
### Good First Issues
|
|
129
129
|
|
|
130
130
|
We have a list of [good first issues][gfi] that contain bugs which have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.
|
|
131
131
|
|
|
132
|
-
[gfi]: https://github.com/
|
|
132
|
+
[gfi]: https://github.com/react/react-native/labels/good%20first%20issue
|
|
133
133
|
|
|
134
134
|
### Discussions
|
|
135
135
|
|
|
@@ -141,4 +141,4 @@ Larger discussions and proposals are discussed in [**@react-native-community/dis
|
|
|
141
141
|
|
|
142
142
|
React Native is MIT licensed, as found in the [LICENSE][l] file.
|
|
143
143
|
|
|
144
|
-
[l]: https://github.com/
|
|
144
|
+
[l]: https://github.com/react/react-native/blob/main/LICENSE
|
package/README.md
CHANGED
|
@@ -272,6 +272,7 @@ class Game2048 extends React.Component {
|
|
|
272
272
|
| Prop (View) | Value | Description |
|
|
273
273
|
|---|---|---|
|
|
274
274
|
| scrollSnapAlign | `'start'` \| `'center'` \| `'end'` | Controls where this item snaps inside its parent ScrollView. Only used when the parent has `snapToAlignment="item"`. |
|
|
275
|
+
| scrollSnapOffset | `number` | Per-item pixel offset (in dp/pt). When set, the focus engine lands this item's leading edge at `scrollSnapOffset` from the viewport origin. Standalone alternative to `scrollSnapAlign` — takes precedence if both are set on the same item. Only used when the parent has `snapToAlignment="item"`. |
|
|
275
276
|
|
|
276
277
|
```jsx
|
|
277
278
|
<ScrollView
|
|
@@ -291,6 +292,16 @@ class Game2048 extends React.Component {
|
|
|
291
292
|
</ScrollView>
|
|
292
293
|
```
|
|
293
294
|
|
|
295
|
+
`scrollSnapOffset` is useful when different items in the same ScrollView need to land at different positions — e.g. a hero row peeking 27dp from the top while poster rows peek 550dp:
|
|
296
|
+
|
|
297
|
+
```jsx
|
|
298
|
+
<ScrollView snapToAlignment="item">
|
|
299
|
+
<View scrollSnapOffset={27}><Hero /></View>
|
|
300
|
+
<View scrollSnapOffset={100}><Featured /></View>
|
|
301
|
+
<View scrollSnapOffset={550}><PosterRow /></View>
|
|
302
|
+
</ScrollView>
|
|
303
|
+
```
|
|
304
|
+
|
|
294
305
|
- _ScrollView animation control_: The `scrollAnimationEnabled` prop allows disabling scroll animations when focus changes on TV. When set to `false`, the scroll view jumps instantly to the focused item instead of animating. This only affects TV platforms and has no effect on mobile.
|
|
295
306
|
|
|
296
307
|
| Prop (ScrollView) | Value | Description |
|
|
@@ -307,7 +318,8 @@ class Game2048 extends React.Component {
|
|
|
307
318
|
|
|
308
319
|
- _Interaction with existing ScrollView props_: The TV scroll props build on top of existing React Native ScrollView behavior. Here is how they interact:
|
|
309
320
|
|
|
310
|
-
- `snapToAlignment="item"` does not require `snapToInterval` to be set. It works as a standalone snapping mode where each child's `scrollSnapAlign` determines the snap position. If `snapToInterval` is also set, the interval is applied as an additional constraint after the item offset is computed.
|
|
321
|
+
- `snapToAlignment="item"` does not require `snapToInterval` to be set. It works as a standalone snapping mode where each child's `scrollSnapAlign` or `scrollSnapOffset` determines the snap position. If `snapToInterval` is also set, the interval is applied as an additional constraint after the item offset is computed.
|
|
322
|
+
- `scrollSnapOffset` ignores `snapToItemPadding`. The padding is a global value applied to `scrollSnapAlign` cases; `scrollSnapOffset` is itself a per-item pixel offset that fully specifies where the item lands.
|
|
311
323
|
- `snapToAlignment="item"` should not be combined with `pagingEnabled`. Both attempt to control scroll positioning independently, which leads to unpredictable behavior. Use one or the other.
|
|
312
324
|
- `snapToStart` and `snapToEnd` work independently of `snapToAlignment="item"`. They control edge behavior during swipe/drag momentum (whether the scroll view snaps to the first or last position), but do not affect focus driven item snapping.
|
|
313
325
|
- `scrollAnimationEnabled={false}` disables all scroll animations, including programmatic `scrollTo({animated: true})` calls. When disabled, all scrolling is instant.
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Converts between standard URLs and JSC-safe URLs.
|
|
12
|
+
*
|
|
13
|
+
* JSC (JavaScriptCore) strips query strings from source URLs in stack traces
|
|
14
|
+
* as of iOS 16.4. Metro works around this by encoding the query string into
|
|
15
|
+
* the URL path. These methods convert between the two formats.
|
|
16
|
+
*/
|
|
17
|
+
@interface RCTJscSafeUrl : NSObject
|
|
18
|
+
|
|
19
|
+
+ (nonnull NSString *)normalUrlFromJscSafeUrl:(nonnull NSString *)url;
|
|
20
|
+
+ (nonnull NSString *)jscSafeUrlFromNormalUrl:(nonnull NSString *)url;
|
|
21
|
+
+ (BOOL)isJscSafeUrl:(nonnull NSString *)url;
|
|
22
|
+
|
|
23
|
+
@end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#import "RCTJscSafeUrl+Internal.h"
|
|
9
|
+
|
|
10
|
+
#import <React/RCTDefines.h>
|
|
11
|
+
#import <react/debug/redbox/JscSafeUrl.h>
|
|
12
|
+
|
|
13
|
+
#if RCT_DEV_MENU
|
|
14
|
+
|
|
15
|
+
using facebook::react::unstable_redbox::isJscSafeUrl;
|
|
16
|
+
using facebook::react::unstable_redbox::toJscSafeUrl;
|
|
17
|
+
using facebook::react::unstable_redbox::toNormalUrl;
|
|
18
|
+
|
|
19
|
+
@implementation RCTJscSafeUrl
|
|
20
|
+
|
|
21
|
+
+ (NSString *)normalUrlFromJscSafeUrl:(NSString *)url
|
|
22
|
+
{
|
|
23
|
+
return [NSString stringWithUTF8String:toNormalUrl(url.UTF8String).c_str()];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
+ (NSString *)jscSafeUrlFromNormalUrl:(NSString *)url
|
|
27
|
+
{
|
|
28
|
+
return [NSString stringWithUTF8String:toJscSafeUrl(url.UTF8String).c_str()];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
+ (BOOL)isJscSafeUrl:(NSString *)url
|
|
32
|
+
{
|
|
33
|
+
return isJscSafeUrl(url.UTF8String);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@end
|
|
37
|
+
|
|
38
|
+
#endif
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#import <React/RCTDefines.h>
|
|
9
|
+
#import <UIKit/UIKit.h>
|
|
10
|
+
|
|
11
|
+
#if RCT_DEV_MENU
|
|
12
|
+
|
|
13
|
+
@class RCTJSStackFrame;
|
|
14
|
+
|
|
15
|
+
@protocol RCTRedBoxControllerActionDelegate <NSObject>
|
|
16
|
+
|
|
17
|
+
- (void)redBoxController:(UIViewController *)redBoxController openStackFrameInEditor:(RCTJSStackFrame *)stackFrame;
|
|
18
|
+
- (void)reloadFromRedBoxController:(UIViewController *)redBoxController;
|
|
19
|
+
- (void)loadExtraDataViewController;
|
|
20
|
+
|
|
21
|
+
@end
|
|
22
|
+
|
|
23
|
+
@protocol RCTRedBoxControlling <NSObject>
|
|
24
|
+
|
|
25
|
+
@property (nonatomic, weak) id<RCTRedBoxControllerActionDelegate> actionDelegate;
|
|
26
|
+
|
|
27
|
+
- (void)showErrorMessage:(NSString *)message
|
|
28
|
+
withStack:(NSArray<RCTJSStackFrame *> *)stack
|
|
29
|
+
isUpdate:(BOOL)isUpdate
|
|
30
|
+
errorCookie:(int)errorCookie;
|
|
31
|
+
|
|
32
|
+
- (void)dismiss;
|
|
33
|
+
|
|
34
|
+
@end
|
|
35
|
+
|
|
36
|
+
@protocol RCTRedBox2Controlling <RCTRedBoxControlling>
|
|
37
|
+
|
|
38
|
+
@property (nonatomic, strong, nullable) NSURL *bundleURL;
|
|
39
|
+
|
|
40
|
+
@end
|
|
41
|
+
|
|
42
|
+
#endif
|