react-native-windows 0.83.0-preview.2 → 0.84.0-preview.2
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/.flowconfig +2 -2
- package/Folly/Folly.vcxproj +2 -0
- package/Libraries/Animated/AnimatedEvent.js +2 -2
- package/Libraries/Animated/animations/Animation.js +1 -3
- package/Libraries/Animated/createAnimatedComponent.js +8 -5
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
- package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
- package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
- package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +24 -22
- package/Libraries/Blob/URL.js +34 -3
- package/Libraries/Blob/URLSearchParams.js +1 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +9 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +6 -1
- package/Libraries/Components/Button.js +2 -5
- package/Libraries/Components/Button.windows.js +2 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
- package/Libraries/Components/Keyboard/Keyboard.js +2 -2
- package/Libraries/Components/Pressable/Pressable.js +8 -8
- package/Libraries/Components/Pressable/Pressable.windows.js +14 -13
- package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
- package/Libraries/Components/TextInput/TextInput.flow.windows.js +19 -18
- package/Libraries/Components/TextInput/TextInput.js +33 -34
- package/Libraries/Components/TextInput/TextInput.windows.js +40 -39
- package/Libraries/Components/Touchable/PooledClass.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +3 -3
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +3 -3
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -9
- package/Libraries/Components/View/ViewPropTypes.js +16 -6
- package/Libraries/Components/View/ViewPropTypes.windows.js +21 -11
- package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
- package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +6 -3
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
- package/Libraries/Image/Image.android.js +2 -2
- package/Libraries/Image/Image.ios.js +2 -2
- package/Libraries/Image/Image.windows.js +2 -2
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Interaction/InteractionManager.js +3 -3
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +31 -4
- package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
- package/Libraries/LogBox/LogBox.js +7 -7
- package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
- package/Libraries/NativeComponent/ViewConfigIgnore.windows.js +1 -1
- package/Libraries/Network/RCTNetworking.android.js +3 -3
- package/Libraries/Network/RCTNetworking.ios.js +2 -2
- package/Libraries/Network/RCTNetworking.js.flow +2 -2
- package/Libraries/Network/RCTNetworking.windows.js +2 -2
- package/Libraries/Pressability/Pressability.js +9 -9
- package/Libraries/Pressability/Pressability.windows.js +17 -16
- package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/PaperUIManager.js +1 -1
- package/Libraries/ReactNative/PaperUIManager.windows.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
- package/Libraries/Renderer/shims/ReactFabric.js +3 -1
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
- package/Libraries/Renderer/shims/ReactNative.js +2 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
- package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
- package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
- package/Libraries/StyleSheet/processFilter.js +1 -1
- package/Libraries/Text/Text.js +46 -6
- package/Libraries/Text/Text.windows.js +46 -6
- package/Libraries/Text/TextNativeComponent.js +1 -1
- package/Libraries/Text/TextProps.js +7 -7
- package/Libraries/Text/TextProps.windows.js +7 -7
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +31 -0
- package/Libraries/Types/CoreEventTypes.windows.js +31 -13
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +2 -2
- package/Libraries/Utilities/DevLoadingView.js +8 -1
- package/Libraries/Utilities/DevSettings.js +3 -3
- package/Libraries/Utilities/HMRClient.js +4 -3
- package/Libraries/Utilities/RCTLog.js +3 -3
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +1 -1
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +7 -7
- package/Libraries/Utilities/useRefEffect.js +1 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
- package/Libraries/promiseRejectionTrackingOptions.js +8 -8
- package/Libraries/vendor/core/ErrorUtils.js +10 -10
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +5 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.h +1 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +25 -5
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +2 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +9 -3
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +2 -3
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +2 -2
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +2 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +6 -0
- package/Microsoft.ReactNative/ViewProps.idl +9 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +12 -2
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/ReactCommon/ReactCommon.vcxproj +7 -1
- package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +5 -5
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +12 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/attributedstring/TextAttributes.cpp +291 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +1 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/propsConversions.h +199 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +6 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +17 -10
- package/Scripts/creaternwapp.cmd +8 -1
- package/Scripts/creaternwlib.cmd +21 -2
- package/Shared/DevSettings.h +0 -3
- package/Shared/Modules/WebSocketModule.cpp +0 -1
- package/Shared/Modules/WebSocketModule.h +62 -3
- package/Shared/OInstance.cpp +5 -0
- package/Shared/Shared.vcxitems +4 -6
- package/Shared/Shared.vcxitems.filters +218 -709
- package/codegen/NativeAccessibilityManagerSpec.g.h +2 -0
- package/codegen/NativeAnimatedModuleSpec.g.h +21 -15
- package/codegen/NativeDevLoadingViewSpec.g.h +3 -3
- package/codegen/NativeIntentAndroidSpec.g.h +16 -3
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +209 -191
- package/codegen/react/components/rnwcore/EventEmitters.h +1 -0
- package/codegen/react/components/rnwcore/Props.h +14 -0
- package/codegen/rnwcoreJSI.h +246 -211
- package/index.js +3 -0
- package/index.windows.js +3 -0
- package/jest/mock.js +2 -2
- package/jest/mockComponent.js +1 -1
- package/jest/setup.js +1 -1
- package/package.json +22 -21
- package/src/private/animated/NativeAnimatedHelper.js +130 -125
- package/src/private/animated/NativeAnimatedValidation.js +7 -4
- package/src/private/animated/createAnimatedPropsHook.js +13 -5
- package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
- package/src/private/components/virtualview/VirtualView.js +16 -9
- package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
- package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
- package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
- package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
- package/src/private/webapis/dom/events/CustomEvent.js +3 -3
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
- package/src/private/webapis/html/events/MessageEvent.js +3 -3
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
- package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
- package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
- package/src/private/webapis/performance/Performance.js +1 -1
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
- package/src/private/webapis/structuredClone/structuredClone.js +3 -3
- package/src/types/globals.d.ts +30 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/image/conversions.h +0 -178
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h +0 -183
- package/Shared/Modules/WebSocketTurboModule.h +0 -71
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/attributedstring/TextAttributes.cpp
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
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
|
+
#include "TextAttributes.h"
|
|
9
|
+
|
|
10
|
+
#include <react/renderer/attributedstring/conversions.h>
|
|
11
|
+
#include <react/renderer/core/conversions.h>
|
|
12
|
+
#include <react/renderer/core/graphicsConversions.h>
|
|
13
|
+
#include <react/utils/FloatComparison.h>
|
|
14
|
+
#include <cmath>
|
|
15
|
+
|
|
16
|
+
#include <react/renderer/debug/debugStringConvertibleUtils.h>
|
|
17
|
+
|
|
18
|
+
namespace facebook::react {
|
|
19
|
+
|
|
20
|
+
void TextAttributes::apply(TextAttributes textAttributes) {
|
|
21
|
+
// Color
|
|
22
|
+
foregroundColor = textAttributes.foregroundColor
|
|
23
|
+
? textAttributes.foregroundColor
|
|
24
|
+
: foregroundColor;
|
|
25
|
+
backgroundColor = textAttributes.backgroundColor
|
|
26
|
+
? textAttributes.backgroundColor
|
|
27
|
+
: backgroundColor;
|
|
28
|
+
opacity =
|
|
29
|
+
!std::isnan(textAttributes.opacity) ? textAttributes.opacity : opacity;
|
|
30
|
+
|
|
31
|
+
// Font
|
|
32
|
+
fontFamily = !textAttributes.fontFamily.empty() ? textAttributes.fontFamily
|
|
33
|
+
: fontFamily;
|
|
34
|
+
fontSize =
|
|
35
|
+
!std::isnan(textAttributes.fontSize) ? textAttributes.fontSize : fontSize;
|
|
36
|
+
fontSizeMultiplier = !std::isnan(textAttributes.fontSizeMultiplier)
|
|
37
|
+
? textAttributes.fontSizeMultiplier
|
|
38
|
+
: fontSizeMultiplier;
|
|
39
|
+
fontWeight = textAttributes.fontWeight.has_value() ? textAttributes.fontWeight
|
|
40
|
+
: fontWeight;
|
|
41
|
+
fontStyle = textAttributes.fontStyle.has_value() ? textAttributes.fontStyle
|
|
42
|
+
: fontStyle;
|
|
43
|
+
fontVariant = textAttributes.fontVariant.has_value()
|
|
44
|
+
? textAttributes.fontVariant
|
|
45
|
+
: fontVariant;
|
|
46
|
+
allowFontScaling = textAttributes.allowFontScaling.has_value()
|
|
47
|
+
? textAttributes.allowFontScaling
|
|
48
|
+
: allowFontScaling;
|
|
49
|
+
maxFontSizeMultiplier = !std::isnan(textAttributes.maxFontSizeMultiplier)
|
|
50
|
+
? textAttributes.maxFontSizeMultiplier
|
|
51
|
+
: maxFontSizeMultiplier;
|
|
52
|
+
dynamicTypeRamp = textAttributes.dynamicTypeRamp.has_value()
|
|
53
|
+
? textAttributes.dynamicTypeRamp
|
|
54
|
+
: dynamicTypeRamp;
|
|
55
|
+
letterSpacing = !std::isnan(textAttributes.letterSpacing)
|
|
56
|
+
? textAttributes.letterSpacing
|
|
57
|
+
: letterSpacing;
|
|
58
|
+
textTransform = textAttributes.textTransform.has_value()
|
|
59
|
+
? textAttributes.textTransform
|
|
60
|
+
: textTransform;
|
|
61
|
+
|
|
62
|
+
// Paragraph Styles
|
|
63
|
+
lineHeight = !std::isnan(textAttributes.lineHeight)
|
|
64
|
+
? textAttributes.lineHeight
|
|
65
|
+
: lineHeight;
|
|
66
|
+
alignment = textAttributes.alignment.has_value() ? textAttributes.alignment
|
|
67
|
+
: alignment;
|
|
68
|
+
baseWritingDirection = textAttributes.baseWritingDirection.has_value()
|
|
69
|
+
? textAttributes.baseWritingDirection
|
|
70
|
+
: baseWritingDirection;
|
|
71
|
+
lineBreakStrategy = textAttributes.lineBreakStrategy.has_value()
|
|
72
|
+
? textAttributes.lineBreakStrategy
|
|
73
|
+
: lineBreakStrategy;
|
|
74
|
+
lineBreakMode = textAttributes.lineBreakMode.has_value()
|
|
75
|
+
? textAttributes.lineBreakMode
|
|
76
|
+
: lineBreakMode;
|
|
77
|
+
|
|
78
|
+
// Decoration
|
|
79
|
+
textDecorationColor = textAttributes.textDecorationColor
|
|
80
|
+
? textAttributes.textDecorationColor
|
|
81
|
+
: textDecorationColor;
|
|
82
|
+
textDecorationLineType = textAttributes.textDecorationLineType.has_value()
|
|
83
|
+
? textAttributes.textDecorationLineType
|
|
84
|
+
: textDecorationLineType;
|
|
85
|
+
textDecorationStyle = textAttributes.textDecorationStyle.has_value()
|
|
86
|
+
? textAttributes.textDecorationStyle
|
|
87
|
+
: textDecorationStyle;
|
|
88
|
+
|
|
89
|
+
// Shadow
|
|
90
|
+
textShadowOffset = textAttributes.textShadowOffset.has_value()
|
|
91
|
+
? textAttributes.textShadowOffset.value()
|
|
92
|
+
: textShadowOffset;
|
|
93
|
+
textShadowRadius = !std::isnan(textAttributes.textShadowRadius)
|
|
94
|
+
? textAttributes.textShadowRadius
|
|
95
|
+
: textShadowRadius;
|
|
96
|
+
textShadowColor = textAttributes.textShadowColor
|
|
97
|
+
? textAttributes.textShadowColor
|
|
98
|
+
: textShadowColor;
|
|
99
|
+
|
|
100
|
+
// Special
|
|
101
|
+
isHighlighted = textAttributes.isHighlighted.has_value()
|
|
102
|
+
? textAttributes.isHighlighted
|
|
103
|
+
: isHighlighted;
|
|
104
|
+
// TextAttributes "inherits" the isPressable value from ancestors, so this
|
|
105
|
+
// only applies the current node's value for isPressable if it is truthy.
|
|
106
|
+
isPressable =
|
|
107
|
+
textAttributes.isPressable.has_value() && *textAttributes.isPressable
|
|
108
|
+
? textAttributes.isPressable
|
|
109
|
+
: isPressable;
|
|
110
|
+
layoutDirection = textAttributes.layoutDirection.has_value()
|
|
111
|
+
? textAttributes.layoutDirection
|
|
112
|
+
: layoutDirection;
|
|
113
|
+
accessibilityRole = textAttributes.accessibilityRole.has_value()
|
|
114
|
+
? textAttributes.accessibilityRole
|
|
115
|
+
: accessibilityRole;
|
|
116
|
+
role = textAttributes.role.has_value() ? textAttributes.role : role;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
#pragma mark - Operators
|
|
120
|
+
|
|
121
|
+
bool TextAttributes::operator==(const TextAttributes& rhs) const {
|
|
122
|
+
return std::tie(
|
|
123
|
+
foregroundColor,
|
|
124
|
+
backgroundColor,
|
|
125
|
+
fontFamily,
|
|
126
|
+
fontWeight,
|
|
127
|
+
fontStyle,
|
|
128
|
+
fontVariant,
|
|
129
|
+
allowFontScaling,
|
|
130
|
+
dynamicTypeRamp,
|
|
131
|
+
alignment,
|
|
132
|
+
baseWritingDirection,
|
|
133
|
+
lineBreakStrategy,
|
|
134
|
+
textDecorationColor,
|
|
135
|
+
textDecorationLineType,
|
|
136
|
+
textDecorationStyle,
|
|
137
|
+
textShadowOffset,
|
|
138
|
+
textShadowColor,
|
|
139
|
+
isHighlighted,
|
|
140
|
+
isPressable,
|
|
141
|
+
layoutDirection,
|
|
142
|
+
accessibilityRole,
|
|
143
|
+
role,
|
|
144
|
+
textTransform) ==
|
|
145
|
+
std::tie(
|
|
146
|
+
rhs.foregroundColor,
|
|
147
|
+
rhs.backgroundColor,
|
|
148
|
+
rhs.fontFamily,
|
|
149
|
+
rhs.fontWeight,
|
|
150
|
+
rhs.fontStyle,
|
|
151
|
+
rhs.fontVariant,
|
|
152
|
+
rhs.allowFontScaling,
|
|
153
|
+
rhs.dynamicTypeRamp,
|
|
154
|
+
rhs.alignment,
|
|
155
|
+
rhs.baseWritingDirection,
|
|
156
|
+
rhs.lineBreakStrategy,
|
|
157
|
+
rhs.textDecorationColor,
|
|
158
|
+
rhs.textDecorationLineType,
|
|
159
|
+
rhs.textDecorationStyle,
|
|
160
|
+
rhs.textShadowOffset,
|
|
161
|
+
rhs.textShadowColor,
|
|
162
|
+
rhs.isHighlighted,
|
|
163
|
+
rhs.isPressable,
|
|
164
|
+
rhs.layoutDirection,
|
|
165
|
+
rhs.accessibilityRole,
|
|
166
|
+
rhs.role,
|
|
167
|
+
rhs.textTransform) &&
|
|
168
|
+
floatEquality(maxFontSizeMultiplier, rhs.maxFontSizeMultiplier) &&
|
|
169
|
+
floatEquality(opacity, rhs.opacity) &&
|
|
170
|
+
floatEquality(fontSize, rhs.fontSize) &&
|
|
171
|
+
floatEquality(fontSizeMultiplier, rhs.fontSizeMultiplier) &&
|
|
172
|
+
floatEquality(letterSpacing, rhs.letterSpacing) &&
|
|
173
|
+
floatEquality(lineHeight, rhs.lineHeight) &&
|
|
174
|
+
floatEquality(textShadowRadius, rhs.textShadowRadius);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
TextAttributes TextAttributes::defaultTextAttributes() {
|
|
178
|
+
static auto textAttributes = [] {
|
|
179
|
+
auto defaultAttrs = TextAttributes{};
|
|
180
|
+
// Non-obvious (can be different among platforms) default text attributes.
|
|
181
|
+
defaultAttrs.foregroundColor = facebook::react::Color { // [Windows] override default color to not be black
|
|
182
|
+
.m_color = {},
|
|
183
|
+
.m_platformColor = {"TextFillColorPrimary"},
|
|
184
|
+
};
|
|
185
|
+
defaultAttrs.backgroundColor = clearColor();
|
|
186
|
+
defaultAttrs.fontSize = 14.0;
|
|
187
|
+
defaultAttrs.fontSizeMultiplier = 1.0;
|
|
188
|
+
return defaultAttrs;
|
|
189
|
+
}();
|
|
190
|
+
return textAttributes;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
#pragma mark - DebugStringConvertible
|
|
194
|
+
|
|
195
|
+
#if RN_DEBUG_STRING_CONVERTIBLE
|
|
196
|
+
SharedDebugStringConvertibleList TextAttributes::getDebugProps() const {
|
|
197
|
+
const auto& textAttributes = TextAttributes::defaultTextAttributes();
|
|
198
|
+
return {
|
|
199
|
+
// Color
|
|
200
|
+
debugStringConvertibleItem(
|
|
201
|
+
"backgroundColor", backgroundColor, textAttributes.backgroundColor),
|
|
202
|
+
debugStringConvertibleItem(
|
|
203
|
+
"foregroundColor", foregroundColor, textAttributes.foregroundColor),
|
|
204
|
+
debugStringConvertibleItem("opacity", opacity, textAttributes.opacity),
|
|
205
|
+
|
|
206
|
+
// Font
|
|
207
|
+
debugStringConvertibleItem(
|
|
208
|
+
"fontFamily", fontFamily, textAttributes.fontFamily),
|
|
209
|
+
debugStringConvertibleItem("fontSize", fontSize, textAttributes.fontSize),
|
|
210
|
+
debugStringConvertibleItem(
|
|
211
|
+
"fontSizeMultiplier",
|
|
212
|
+
fontSizeMultiplier,
|
|
213
|
+
textAttributes.fontSizeMultiplier),
|
|
214
|
+
debugStringConvertibleItem(
|
|
215
|
+
"fontWeight", fontWeight, textAttributes.fontWeight),
|
|
216
|
+
debugStringConvertibleItem(
|
|
217
|
+
"fontStyle", fontStyle, textAttributes.fontStyle),
|
|
218
|
+
debugStringConvertibleItem(
|
|
219
|
+
"fontVariant", fontVariant, textAttributes.fontVariant),
|
|
220
|
+
debugStringConvertibleItem(
|
|
221
|
+
"allowFontScaling",
|
|
222
|
+
allowFontScaling,
|
|
223
|
+
textAttributes.allowFontScaling),
|
|
224
|
+
debugStringConvertibleItem(
|
|
225
|
+
"maxFontSizeMultiplier",
|
|
226
|
+
maxFontSizeMultiplier,
|
|
227
|
+
textAttributes.maxFontSizeMultiplier),
|
|
228
|
+
debugStringConvertibleItem(
|
|
229
|
+
"dynamicTypeRamp", dynamicTypeRamp, textAttributes.dynamicTypeRamp),
|
|
230
|
+
debugStringConvertibleItem(
|
|
231
|
+
"letterSpacing", letterSpacing, textAttributes.letterSpacing),
|
|
232
|
+
|
|
233
|
+
// Paragraph Styles
|
|
234
|
+
debugStringConvertibleItem(
|
|
235
|
+
"lineHeight", lineHeight, textAttributes.lineHeight),
|
|
236
|
+
debugStringConvertibleItem(
|
|
237
|
+
"alignment", alignment, textAttributes.alignment),
|
|
238
|
+
debugStringConvertibleItem(
|
|
239
|
+
"writingDirection",
|
|
240
|
+
baseWritingDirection,
|
|
241
|
+
textAttributes.baseWritingDirection),
|
|
242
|
+
debugStringConvertibleItem(
|
|
243
|
+
"lineBreakStrategyIOS",
|
|
244
|
+
lineBreakStrategy,
|
|
245
|
+
textAttributes.lineBreakStrategy),
|
|
246
|
+
debugStringConvertibleItem(
|
|
247
|
+
"lineBreakModeIOS", lineBreakMode, textAttributes.lineBreakMode),
|
|
248
|
+
|
|
249
|
+
// Decoration
|
|
250
|
+
debugStringConvertibleItem(
|
|
251
|
+
"textDecorationColor",
|
|
252
|
+
textDecorationColor,
|
|
253
|
+
textAttributes.textDecorationColor),
|
|
254
|
+
debugStringConvertibleItem(
|
|
255
|
+
"textDecorationLineType",
|
|
256
|
+
textDecorationLineType,
|
|
257
|
+
textAttributes.textDecorationLineType),
|
|
258
|
+
debugStringConvertibleItem(
|
|
259
|
+
"textDecorationStyle",
|
|
260
|
+
textDecorationStyle,
|
|
261
|
+
textAttributes.textDecorationStyle),
|
|
262
|
+
|
|
263
|
+
// Shadow
|
|
264
|
+
debugStringConvertibleItem(
|
|
265
|
+
"textShadowOffset",
|
|
266
|
+
textShadowOffset,
|
|
267
|
+
textAttributes.textShadowOffset),
|
|
268
|
+
debugStringConvertibleItem(
|
|
269
|
+
"textShadowRadius",
|
|
270
|
+
textShadowRadius,
|
|
271
|
+
textAttributes.textShadowRadius),
|
|
272
|
+
debugStringConvertibleItem(
|
|
273
|
+
"textShadowColor", textShadowColor, textAttributes.textShadowColor),
|
|
274
|
+
|
|
275
|
+
// Special
|
|
276
|
+
debugStringConvertibleItem(
|
|
277
|
+
"isHighlighted", isHighlighted, textAttributes.isHighlighted),
|
|
278
|
+
debugStringConvertibleItem(
|
|
279
|
+
"isPressable", isPressable, textAttributes.isPressable),
|
|
280
|
+
debugStringConvertibleItem(
|
|
281
|
+
"layoutDirection", layoutDirection, textAttributes.layoutDirection),
|
|
282
|
+
debugStringConvertibleItem(
|
|
283
|
+
"accessibilityRole",
|
|
284
|
+
accessibilityRole,
|
|
285
|
+
textAttributes.accessibilityRole),
|
|
286
|
+
debugStringConvertibleItem("role", role, textAttributes.role),
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
#endif
|
|
290
|
+
|
|
291
|
+
} // namespace facebook::react
|
|
@@ -10,13 +10,11 @@
|
|
|
10
10
|
#pragma warning(push)
|
|
11
11
|
#pragma warning(disable : 4996) // deprecated APIs
|
|
12
12
|
#endif
|
|
13
|
-
#include
|
|
13
|
+
#include "EventQueueProcessor.h"
|
|
14
14
|
#include <logger/react_native_log.h>
|
|
15
15
|
#include <react/featureflags/ReactNativeFeatureFlags.h>
|
|
16
16
|
#include "EventEmitter.h"
|
|
17
17
|
#include "EventLogger.h"
|
|
18
|
-
#include "EventQueue.h"
|
|
19
|
-
#include "ShadowNodeFamily.h"
|
|
20
18
|
|
|
21
19
|
namespace facebook::react {
|
|
22
20
|
|
|
@@ -0,0 +1,199 @@
|
|
|
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
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <optional>
|
|
11
|
+
|
|
12
|
+
#include <react/renderer/core/PropsParserContext.h>
|
|
13
|
+
#include <react/renderer/core/RawProps.h>
|
|
14
|
+
#include <react/renderer/core/RawPropsKey.h>
|
|
15
|
+
#include <react/renderer/core/graphicsConversions.h>
|
|
16
|
+
|
|
17
|
+
namespace facebook::react {
|
|
18
|
+
|
|
19
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
20
|
+
|
|
21
|
+
inline folly::dynamic toDynamic(const std::vector<bool> &arrayValue)
|
|
22
|
+
{
|
|
23
|
+
folly::dynamic resultArray = folly::dynamic::array();
|
|
24
|
+
for (auto value : arrayValue) {
|
|
25
|
+
resultArray.push_back(value);
|
|
26
|
+
}
|
|
27
|
+
return resultArray;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
inline folly::dynamic toDynamic(const std::vector<std::string> &arrayValue)
|
|
31
|
+
{
|
|
32
|
+
folly::dynamic resultArray = folly::dynamic::array();
|
|
33
|
+
for (auto &value : arrayValue) {
|
|
34
|
+
resultArray.push_back(value);
|
|
35
|
+
}
|
|
36
|
+
return resultArray;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
inline folly::dynamic toDynamic(const std::vector<int> &arrayValue)
|
|
40
|
+
{
|
|
41
|
+
folly::dynamic resultArray = folly::dynamic::array();
|
|
42
|
+
for (auto value : arrayValue) {
|
|
43
|
+
resultArray.push_back(value);
|
|
44
|
+
}
|
|
45
|
+
return resultArray;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
inline folly::dynamic toDynamic(const std::vector<double> &arrayValue)
|
|
49
|
+
{
|
|
50
|
+
folly::dynamic resultArray = folly::dynamic::array();
|
|
51
|
+
for (auto value : arrayValue) {
|
|
52
|
+
resultArray.push_back(value);
|
|
53
|
+
}
|
|
54
|
+
return resultArray;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
inline folly::dynamic toDynamic(const std::vector<Float> &arrayValue)
|
|
58
|
+
{
|
|
59
|
+
folly::dynamic resultArray = folly::dynamic::array();
|
|
60
|
+
for (auto value : arrayValue) {
|
|
61
|
+
resultArray.push_back(value);
|
|
62
|
+
}
|
|
63
|
+
return resultArray;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
inline folly::dynamic toDynamic(const std::vector<folly::dynamic> &arrayValue)
|
|
67
|
+
{
|
|
68
|
+
folly::dynamic resultArray = folly::dynamic::array();
|
|
69
|
+
for (auto &value : arrayValue) {
|
|
70
|
+
resultArray.push_back(value);
|
|
71
|
+
}
|
|
72
|
+
return resultArray;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
template <typename T>
|
|
76
|
+
folly::dynamic toDynamic(const std::vector<T> &arrayValue)
|
|
77
|
+
{
|
|
78
|
+
folly::dynamic resultArray = folly::dynamic::array();
|
|
79
|
+
for (const auto &value : arrayValue) {
|
|
80
|
+
resultArray.push_back(toDynamic(value));
|
|
81
|
+
}
|
|
82
|
+
return resultArray;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
#endif
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Use this only when a prop update has definitely been sent from JS;
|
|
89
|
+
* essentially, cases where rawValue is virtually guaranteed to not be a
|
|
90
|
+
* nullptr.
|
|
91
|
+
*/
|
|
92
|
+
template <typename T>
|
|
93
|
+
void fromRawValue(const PropsParserContext &context, const RawValue &rawValue, T &result, T defaultValue)
|
|
94
|
+
{
|
|
95
|
+
if (!rawValue.hasValue()) {
|
|
96
|
+
result = std::move(defaultValue);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
fromRawValue(context, rawValue, result);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
template <typename T>
|
|
104
|
+
void fromRawValue(const PropsParserContext &context, const RawValue &rawValue, T &result)
|
|
105
|
+
{
|
|
106
|
+
result = (T)rawValue;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
template <typename T>
|
|
110
|
+
void fromRawValue(const PropsParserContext &context, const RawValue &rawValue, std::optional<T> &result)
|
|
111
|
+
{
|
|
112
|
+
T resultValue;
|
|
113
|
+
fromRawValue(context, rawValue, resultValue);
|
|
114
|
+
result = std::optional<T>{std::move(resultValue)};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
template <typename T>
|
|
118
|
+
void fromRawValue(const PropsParserContext &context, const RawValue &rawValue, std::vector<T> &result)
|
|
119
|
+
{
|
|
120
|
+
if (rawValue.hasType<std::vector<RawValue>>()) {
|
|
121
|
+
auto items = (std::vector<RawValue>)rawValue;
|
|
122
|
+
auto length = items.size();
|
|
123
|
+
result.clear();
|
|
124
|
+
result.reserve(length);
|
|
125
|
+
for (auto &item : items) {
|
|
126
|
+
T itemResult;
|
|
127
|
+
fromRawValue(context, item, itemResult);
|
|
128
|
+
result.push_back(itemResult);
|
|
129
|
+
}
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// The case where `value` is not an array.
|
|
134
|
+
result.clear();
|
|
135
|
+
result.reserve(1);
|
|
136
|
+
T itemResult;
|
|
137
|
+
fromRawValue(context, rawValue, itemResult);
|
|
138
|
+
result.push_back(itemResult);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
template <typename T>
|
|
142
|
+
void fromRawValue(const PropsParserContext &context, const RawValue &rawValue, std::vector<std::vector<T>> &result)
|
|
143
|
+
{
|
|
144
|
+
if (rawValue.hasType<std::vector<std::vector<RawValue>>>()) {
|
|
145
|
+
auto items = (std::vector<std::vector<RawValue>>)rawValue;
|
|
146
|
+
auto length = items.size();
|
|
147
|
+
result.clear();
|
|
148
|
+
result.reserve(length);
|
|
149
|
+
for (auto &item : items) {
|
|
150
|
+
T itemResult;
|
|
151
|
+
fromRawValue(context, item, itemResult);
|
|
152
|
+
result.push_back(itemResult);
|
|
153
|
+
}
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// The case where `value` is not an array.
|
|
158
|
+
result.clear();
|
|
159
|
+
result.reserve(1);
|
|
160
|
+
T itemResult;
|
|
161
|
+
fromRawValue(context, rawValue, itemResult);
|
|
162
|
+
result.push_back(itemResult);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
template <typename T, typename U = T>
|
|
166
|
+
T convertRawProp(
|
|
167
|
+
const PropsParserContext &context,
|
|
168
|
+
const RawProps &rawProps,
|
|
169
|
+
const char *name,
|
|
170
|
+
const T &sourceValue,
|
|
171
|
+
const U &defaultValue,
|
|
172
|
+
const char *namePrefix = nullptr,
|
|
173
|
+
const char *nameSuffix = nullptr)
|
|
174
|
+
{
|
|
175
|
+
const auto *rawValue = rawProps.at(name, namePrefix, nameSuffix);
|
|
176
|
+
if (rawValue == nullptr) [[likely]] {
|
|
177
|
+
return sourceValue;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Special case: `null` always means "the prop was removed, use default
|
|
181
|
+
// value".
|
|
182
|
+
if (!rawValue->hasValue()) [[unlikely]] {
|
|
183
|
+
return static_cast<T>(defaultValue); // Windows #15782
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
try {
|
|
187
|
+
T result;
|
|
188
|
+
fromRawValue(context, *rawValue, result);
|
|
189
|
+
return result;
|
|
190
|
+
} catch (const std::exception &e) {
|
|
191
|
+
// In case of errors, log the error and fall back to the default
|
|
192
|
+
RawPropsKey key{.prefix = namePrefix, .name = name, .suffix = nameSuffix};
|
|
193
|
+
// TODO: report this using ErrorUtils so it's more visible to the user
|
|
194
|
+
LOG(ERROR) << "Error while converting prop '" << static_cast<std::string>(key) << "': " << e.what();
|
|
195
|
+
return static_cast<T>(defaultValue);// Windows #15782
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
} // namespace facebook::react
|
|
@@ -210,6 +210,12 @@ void UIManager::completeSurface(
|
|
|
210
210
|
// after we commit a specific one.
|
|
211
211
|
lazyShadowTreeRevisionConsistencyManager_->updateCurrentRevision(
|
|
212
212
|
surfaceId, shadowTree.getCurrentRevision().rootShadowNode);
|
|
213
|
+
|
|
214
|
+
if (ReactNativeFeatureFlags::useSharedAnimatedBackend()) {
|
|
215
|
+
if (auto animationBackend = animationBackend_.lock()) {
|
|
216
|
+
animationBackend->clearRegistry(surfaceId);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
213
219
|
}
|
|
214
220
|
});
|
|
215
221
|
}
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
#include <cxxreact/TraceSection.h>
|
|
21
21
|
#include <glog/logging.h>
|
|
22
22
|
#include <jsi/JSIDynamic.h>
|
|
23
|
-
#include <jsi/hermes.h>
|
|
23
|
+
#include <jsi/hermes-interfaces.h>
|
|
24
24
|
#include <jsi/instrumentation.h>
|
|
25
25
|
#include <jsinspector-modern/HostTarget.h>
|
|
26
|
-
#include <jsireact/JSIExecutor.h>
|
|
27
26
|
#include <react/featureflags/ReactNativeFeatureFlags.h>
|
|
28
27
|
#include <react/renderer/core/ShadowNode.h>
|
|
29
28
|
#include <react/renderer/runtimescheduler/RuntimeSchedulerBinding.h>
|
|
29
|
+
#include <react/runtime/JSRuntimeBindings.h>
|
|
30
30
|
#include <react/timing/primitives.h>
|
|
31
31
|
#include <react/utils/jsi-utils.h>
|
|
32
32
|
#include <iostream>
|
|
@@ -53,6 +53,12 @@ std::shared_ptr<RuntimeScheduler> createRuntimeScheduler(
|
|
|
53
53
|
return scheduler;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
std::string getSyntheticBundlePath(uint32_t bundleId) {
|
|
57
|
+
std::array<char, 32> buffer{};
|
|
58
|
+
std::snprintf(buffer.data(), buffer.size(), "seg-%u.js", bundleId);
|
|
59
|
+
return buffer.data();
|
|
60
|
+
}
|
|
61
|
+
|
|
56
62
|
} // namespace
|
|
57
63
|
|
|
58
64
|
ReactInstance::ReactInstance(
|
|
@@ -94,7 +100,7 @@ ReactInstance::ReactInstance(
|
|
|
94
100
|
jsErrorHandler->handleError(jsiRuntime, originalError, true);
|
|
95
101
|
} catch (std::exception& ex) {
|
|
96
102
|
jsi::JSError error(
|
|
97
|
-
jsiRuntime, std::string("Non-
|
|
103
|
+
jsiRuntime, std::string("Non-JS exception: ") + ex.what());
|
|
98
104
|
jsErrorHandler->handleError(jsiRuntime, error, true);
|
|
99
105
|
}
|
|
100
106
|
});
|
|
@@ -161,6 +167,11 @@ ReactInstance::ReactInstance(
|
|
|
161
167
|
runtimeScheduler->scheduleWork(std::move(callback));
|
|
162
168
|
});
|
|
163
169
|
}
|
|
170
|
+
ReactInstance::~ReactInstance() noexcept {
|
|
171
|
+
if (timerManager_ != nullptr) {
|
|
172
|
+
timerManager_->quit();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
164
175
|
|
|
165
176
|
void ReactInstance::unregisterFromInspector() {
|
|
166
177
|
if (inspectorTarget_ != nullptr) {
|
|
@@ -226,7 +237,7 @@ void ReactInstance::loadScript(
|
|
|
226
237
|
const std::string& sourceURL,
|
|
227
238
|
std::function<void(jsi::Runtime& runtime)>&& beforeLoad,
|
|
228
239
|
std::function<void(jsi::Runtime& runtime)>&& afterLoad) {
|
|
229
|
-
|
|
240
|
+
std::shared_ptr<const jsi::Buffer> buffer(std::move(script));
|
|
230
241
|
std::string scriptName = simpleBasename(sourceURL);
|
|
231
242
|
|
|
232
243
|
runtimeScheduler_->scheduleWork([this,
|
|
@@ -237,7 +248,7 @@ void ReactInstance::loadScript(
|
|
|
237
248
|
std::weak_ptr<BufferedRuntimeExecutor>(
|
|
238
249
|
bufferedRuntimeExecutor_),
|
|
239
250
|
beforeLoad,
|
|
240
|
-
afterLoad](jsi::Runtime& runtime) {
|
|
251
|
+
afterLoad](jsi::Runtime& runtime) mutable {
|
|
241
252
|
if (beforeLoad) {
|
|
242
253
|
beforeLoad(runtime);
|
|
243
254
|
}
|
|
@@ -362,7 +373,6 @@ void ReactInstance::registerSegment(
|
|
|
362
373
|
throw std::invalid_argument(
|
|
363
374
|
"Empty segment registered with ID " + tag + " from " + segmentPath);
|
|
364
375
|
}
|
|
365
|
-
auto buffer = std::make_shared<BigStringBuffer>(std::move(script));
|
|
366
376
|
|
|
367
377
|
bool hasLogger(ReactMarker::logTaggedMarkerBridgelessImpl != nullptr);
|
|
368
378
|
if (hasLogger) {
|
|
@@ -371,11 +381,8 @@ void ReactInstance::registerSegment(
|
|
|
371
381
|
}
|
|
372
382
|
LOG(WARNING) << "Starting to evaluate segment " << segmentId
|
|
373
383
|
<< " in ReactInstance::registerSegment";
|
|
374
|
-
#pragma clang diagnostic push
|
|
375
|
-
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
|
376
384
|
runtime.evaluateJavaScript(
|
|
377
|
-
|
|
378
|
-
#pragma clang diagnostic pop
|
|
385
|
+
std::move(script), getSyntheticBundlePath(segmentId));
|
|
379
386
|
LOG(WARNING) << "Finished evaluating segment " << segmentId
|
|
380
387
|
<< " in ReactInstance::registerSegment";
|
|
381
388
|
if (hasLogger) {
|
package/Scripts/creaternwapp.cmd
CHANGED
|
@@ -117,7 +117,14 @@ if not "x%RN_VERSION:nightly=%"=="x%RN_VERSION%" (
|
|
|
117
117
|
REM Do not change, this makes sure we always get a nightly template when still consuming a nightly RN and NOT a later "stable" template that may have been released
|
|
118
118
|
REM set RNCLI_TEMPLATE=--template "@react-native-community/template@^%RN_VERSION:~0,4%.0-"
|
|
119
119
|
REM Windows we need to manually update this with every integration #15124
|
|
120
|
-
set RNCLI_TEMPLATE=--template "@react-native-community/template@0.
|
|
120
|
+
set RNCLI_TEMPLATE=--template "@react-native-community/template@0.84.1"
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
if not "x%RN_VERSION:-rc=%"=="x%RN_VERSION%" (
|
|
124
|
+
@echo creaternwapp.cmd Override @react-native-community/template version for RC
|
|
125
|
+
REM RC versions may not have a corresponding template published to npm
|
|
126
|
+
REM Windows we need to manually update this with every integration #15124
|
|
127
|
+
set RNCLI_TEMPLATE=--template "@react-native-community/template@0.84.1"
|
|
121
128
|
)
|
|
122
129
|
|
|
123
130
|
@echo creaternwapp.cmd: Creating base RN app project with: npx --yes @react-native-community/cli@%RNCLI_VERSION% init %APP_NAME% --version %RN_VERSION% %RNCLI_TEMPLATE% --verbose --skip-install --install-pods false --skip-git-init true
|
package/Scripts/creaternwlib.cmd
CHANGED
|
@@ -116,8 +116,15 @@ for /f "delims=" %%a in ('npm show react@%R_VERSION% version') do @set R_VERSION
|
|
|
116
116
|
|
|
117
117
|
@echo creaternwlib.cmd Creating RNW lib "%LIB_NAME%" with react@%R_VERSION%, react-native@%RN_VERSION%, and react-native-windows@%RNW_VERSION%
|
|
118
118
|
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
set CRNL_RN_VERSION_ARG=--react-native-version %RN_VERSION%
|
|
120
|
+
if not "x%RN_VERSION:-rc=%"=="x%RN_VERSION%" (
|
|
121
|
+
@echo creaternwlib.cmd Override --react-native-version for RC build, will fix up versions later
|
|
122
|
+
REM RC versions may not have a corresponding template published to npm, omit --react-native-version
|
|
123
|
+
set CRNL_RN_VERSION_ARG=
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
@echo creaternwlib.cmd Creating base RN library project with: npx --yes create-react-native-library@0.48.9 --slug %LIB_NAME% --description %LIB_NAME% --author-name "React-Native-Windows Bot" --author-email 53619745+rnbot@users.noreply.github.com --author-url http://example.com --repo-url http://example.com --languages kotlin-objc --local false --type %RN_TEMPLATE_TYPE% %CRNL_RN_VERSION_ARG% --example vanilla %LIB_NAME%
|
|
127
|
+
call npx --yes create-react-native-library@0.48.9 --slug %LIB_NAME% --description %LIB_NAME% --author-name "React-Native-Windows Bot" --author-email 53619745+rnbot@users.noreply.github.com --author-url http://example.com --repo-url http://example.com --languages kotlin-objc --local false --type %RN_TEMPLATE_TYPE% %CRNL_RN_VERSION_ARG% --example vanilla %LIB_NAME%
|
|
121
128
|
|
|
122
129
|
if %ERRORLEVEL% neq 0 (
|
|
123
130
|
@echo creaternwlib.cmd: Unable to create base RN library project
|
|
@@ -138,6 +145,18 @@ if not "x%RN_VERSION:nightly=%"=="x%RN_VERSION%" (
|
|
|
138
145
|
popd
|
|
139
146
|
)
|
|
140
147
|
|
|
148
|
+
if not "x%RN_VERSION:-rc=%"=="x%RN_VERSION%" (
|
|
149
|
+
@echo creaternwlib.cmd Fixing react-native RC version
|
|
150
|
+
pwsh.exe -Command "(gc package.json) -replace '""react-native"": ""[^\*]*""', '""react-native"": ""%RN_VERSION%""' | Out-File -encoding utf8NoBOM package.json"
|
|
151
|
+
pwsh.exe -Command "(gc package.json) -replace '""@react-native/(.+-(config|preset))"": "".*""', '""@react-native/$1"": ""%RN_VERSION%""' | Out-File -encoding utf8NoBOM package.json"
|
|
152
|
+
pwsh.exe -Command "(gc package.json) -replace '""@react-native-community/cli((-platform-)?(ios|android))?"": "".*""', '""@react-native-community/cli$1"": ""%RNCLI_VERSION%""' | Out-File -encoding utf8NoBOM package.json"
|
|
153
|
+
pushd example
|
|
154
|
+
pwsh.exe -Command "(gc package.json) -replace '""react-native"": ""[^\*]*""', '""react-native"": ""%RN_VERSION%""' | Out-File -encoding utf8NoBOM package.json"
|
|
155
|
+
pwsh.exe -Command "(gc package.json) -replace '""@react-native/(.+-(config|preset))"": "".*""', '""@react-native/$1"": ""%RN_VERSION%""' | Out-File -encoding utf8NoBOM package.json"
|
|
156
|
+
pwsh.exe -Command "(gc package.json) -replace '""@react-native-community/cli((-platform-)?(ios|android))?"": "".*""', '""@react-native-community/cli$1"": ""%RNCLI_VERSION%""' | Out-File -encoding utf8NoBOM package.json"
|
|
157
|
+
popd
|
|
158
|
+
)
|
|
159
|
+
|
|
141
160
|
@echo creaternwlib.cmd: Calling yarn install
|
|
142
161
|
call yarn install
|
|
143
162
|
|
package/Shared/DevSettings.h
CHANGED
|
@@ -86,9 +86,6 @@ struct DevSettings {
|
|
|
86
86
|
|
|
87
87
|
bool enableDefaultCrashHandler{false};
|
|
88
88
|
|
|
89
|
-
// OC:8368383 - Memory leak under investigation.
|
|
90
|
-
bool useWebSocketTurboModule{false};
|
|
91
|
-
|
|
92
89
|
// Enable concurrent mode by installing runtimeScheduler
|
|
93
90
|
bool useRuntimeScheduler{false};
|
|
94
91
|
|