react-native-windows 0.68.1 → 0.69.0-preview.1
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 +1 -3
- package/Chakra/ChakraHelpers.cpp +0 -1
- package/Directory.Build.props +3 -0
- package/Directory.Build.targets +1 -1
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1411 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +336 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +182 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.windows.js +2 -2
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/animations/TimingAnimation.js +6 -11
- package/Libraries/Animated/createAnimatedComponent.js +2 -2
- package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
- package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/Blob/URL.js +7 -1
- package/Libraries/Components/Button.js +3 -0
- package/Libraries/Components/Button.windows.js +4 -0
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
- package/Libraries/Components/ScrollView/ScrollView.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
- package/Libraries/Components/Slider/Slider.js +0 -2
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/Switch.js +11 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
- package/Libraries/Components/TextInput/TextInput.js +1 -8
- package/Libraries/Components/TextInput/TextInput.windows.js +4 -9
- package/Libraries/Components/TextInput/TextInputState.js +10 -2
- package/Libraries/Components/TextInput/TextInputState.windows.js +10 -3
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +6 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.windows.js +33 -1
- package/Libraries/Components/View/ViewNativeComponent.js +68 -8
- package/Libraries/Components/View/ViewPropTypes.js +36 -4
- package/Libraries/Components/View/ViewPropTypes.windows.js +36 -4
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +1 -1
- package/Libraries/Core/RawEventEmitter.js +38 -0
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/polyfillPromise.js +32 -0
- package/Libraries/Core/setUpReactDevTools.js +3 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
- package/Libraries/Events/CustomEvent.js +32 -0
- package/Libraries/Events/EventPolyfill.js +239 -0
- package/Libraries/Image/Image.android.js +0 -6
- package/Libraries/Image/Image.ios.js +0 -6
- package/Libraries/Image/Image.windows.js +2 -8
- package/Libraries/Image/ImageViewNativeComponent.js +18 -3
- package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
- package/Libraries/Inspector/Inspector.js +2 -4
- package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
- package/Libraries/Interaction/InteractionManager.js +1 -12
- package/Libraries/Interaction/TaskQueue.js +5 -4
- package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +27 -6
- package/Libraries/Lists/VirtualizedList.js +71 -55
- package/Libraries/Lists/VirtualizedListContext.js +7 -3
- package/Libraries/Lists/VirtualizedSectionList.js +2 -2
- package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
- package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
- package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
- package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
- package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +91 -42
- package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +13 -13
- package/Libraries/LogBox/Data/LogBoxData.js +2 -2
- package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +2 -21
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +334 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
- package/Libraries/NativeComponent/ViewConfig.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
- package/Libraries/Network/FormData.js +7 -1
- package/Libraries/Pressability/Pressability.js +115 -46
- package/Libraries/Pressability/Pressability.windows.js +190 -74
- package/Libraries/Pressability/PressabilityDebug.js +5 -9
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
- package/Libraries/ReactNative/PaperUIManager.windows.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
- package/Libraries/ReactNative/UIManager.js +2 -3
- package/Libraries/ReactNative/renderApplication.js +4 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
- package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
- package/Libraries/StyleSheet/processTransform.windows.js +272 -0
- package/Libraries/Text/Text.js +13 -7
- package/Libraries/Text/Text.windows.js +16 -7
- package/Libraries/Text/TextNativeComponent.js +2 -0
- package/Libraries/Text/TextProps.js +10 -0
- package/Libraries/Types/CoreEventTypes.js +13 -1
- package/Libraries/Types/CoreEventTypes.windows.js +26 -1
- package/Libraries/Utilities/Appearance.js +0 -8
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
- package/Libraries/Utilities/codegenNativeComponent.js +17 -6
- package/Libraries/Utilities/stringifySafe.js +4 -1
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
- package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
- package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
- package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +1 -4
- package/Microsoft.ReactNative/DynamicReader.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
- package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
- package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
- package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
- package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
- package/Microsoft.ReactNative/IViewManager.idl +3 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
- package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
- package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
- package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
- package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
- package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +15 -2
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
- package/Microsoft.ReactNative/ReactInstanceSettings.idl +12 -2
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +1 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
- package/Microsoft.ReactNative/RedBox.cpp +3 -2
- package/Microsoft.ReactNative/TurboModulesProvider.cpp +3 -2
- package/Microsoft.ReactNative/TurboModulesProvider.h +4 -1
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +41 -0
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
- package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
- package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
- package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
- package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
- package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
- package/Microsoft.ReactNative/XamlView.h +8 -3
- package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
- package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +19 -14
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +4 -0
- package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
- package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
- package/Microsoft.ReactNative.Cxx/NativeModules.h +3 -3
- package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
- package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
- package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
- package/Mso/activeObject/activeObject.h +2 -2
- package/Mso/compilerAdapters/cppMacros.h +3 -5
- package/Mso/errorCode/errorProvider.h +2 -2
- package/Mso/errorCode/maybe.h +4 -4
- package/Mso/functional/functor.h +6 -6
- package/Mso/functional/functorRef.h +2 -2
- package/Mso/future/details/executor.h +2 -2
- package/Mso/future/details/futureFuncInl.h +4 -4
- package/Mso/future/details/ifuture.h +3 -3
- package/Mso/future/details/maybeInvoker.h +6 -6
- package/Mso/future/details/promiseGroupInl.h +4 -4
- package/Mso/future/details/promiseInl.h +4 -4
- package/Mso/future/details/resultTraits.h +4 -4
- package/Mso/future/details/whenAllInl.h +1 -1
- package/Mso/future/future.h +13 -13
- package/Mso/guid/msoGuidDetails.h +1 -1
- package/Mso/memoryApi/memoryApi.h +13 -7
- package/Mso/motifCpp/gTestAdapter.h +1 -1
- package/Mso/motifCpp/testInfo.h +7 -9
- package/Mso/object/make.h +8 -8
- package/Mso/object/objectRefCount.h +3 -5
- package/Mso/object/objectWithWeakRef.h +10 -14
- package/Mso/object/queryCast.h +4 -4
- package/Mso/object/refCountedObject.h +4 -4
- package/Mso/object/unknownObject.h +7 -7
- package/Mso/platformAdapters/windowsFirst.h +1 -1
- package/Mso/smartPtr/cntPtr.h +8 -8
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +96 -4
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
- package/Mso/src/future/futureImpl.h +1 -1
- package/Mso/src/memoryApi/memoryApi.cpp +4 -4
- package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +1 -1
- package/PropertySheets/React.Cpp.props +13 -0
- package/PropertySheets/WinUI.props +3 -6
- package/ReactCommon/ReactCommon.vcxproj +2 -4
- package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
- package/ReactCommon/Yoga.cpp +1 -1
- package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
- package/Scripts/OfficeReact.Win32.nuspec +1 -3
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
- package/Scripts/copyRNLibraries.js +8 -8
- package/Scripts/just.js +1 -1
- package/Scripts/rnw-dependencies.ps1 +41 -10
- package/Scripts/run-desktop-integration-tests.js +6 -6
- package/Shared/AbiSafe.h +3 -3
- package/Shared/BaseScriptStoreImpl.cpp +1 -1
- package/Shared/CppRuntimeOptions.h +50 -0
- package/Shared/CreateModules.h +4 -0
- package/Shared/DevSupportManager.cpp +34 -33
- package/Shared/DevSupportManager.h +1 -2
- package/Shared/HermesRuntimeHolder.cpp +23 -14
- package/Shared/HermesRuntimeHolder.h +8 -2
- package/Shared/IDevSupportManager.h +1 -2
- package/Shared/InspectorPackagerConnection.cpp +7 -5
- package/Shared/InspectorPackagerConnection.h +2 -2
- package/Shared/JSI/ChakraApi.cpp +0 -1
- package/Shared/JSI/ChakraRuntime.cpp +1 -2
- package/Shared/JSI/NapiJsiV8RuntimeHolder.h +1 -1
- package/Shared/JSI/RuntimeHolder.h +2 -0
- package/Shared/Modules/HttpModule.cpp +198 -0
- package/Shared/Modules/HttpModule.h +53 -0
- package/Shared/Modules/WebSocketModule.cpp +5 -1
- package/Shared/Modules/WebSocketModule.h +8 -5
- package/Shared/Networking/IHttpResource.h +53 -0
- package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +3 -3
- package/Shared/Networking/OriginPolicy.h +15 -0
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
- package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
- package/Shared/Networking/WinRTHttpResource.cpp +347 -0
- package/Shared/Networking/WinRTHttpResource.h +67 -0
- package/Shared/Networking/WinRTTypes.h +30 -0
- package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +31 -22
- package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
- package/Shared/OInstance.cpp +37 -11
- package/Shared/RuntimeOptions.cpp +93 -15
- package/Shared/RuntimeOptions.h +22 -9
- package/Shared/Shared.vcxitems +126 -5
- package/Shared/Shared.vcxitems.filters +55 -15
- package/Shared/Threading/BatchingQueueThread.cpp +1 -1
- package/Shared/Utils/WinRTConversions.cpp +22 -0
- package/Shared/Utils/WinRTConversions.h +15 -0
- package/Shared/tracing/fbsystrace.h +2 -2
- package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
- package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
- package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
- package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
- package/codegen/react/components/rnwcore/Props.cpp +0 -13
- package/codegen/react/components/rnwcore/Props.h +0 -16
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
- package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
- package/include/Shared/cdebug.h +9 -9
- package/index.js +30 -25
- package/index.windows.js +30 -25
- package/jest/preprocessor.js +24 -107
- package/jest/preprocessor_DO_NOT_USE.js +122 -0
- package/metro.config.js +3 -70
- package/package.json +29 -28
- package/react-native.config.js +40 -6
- package/rntypes/index.d.ts +19 -7
- package/stubs/glog/logging.h +1 -1
- package/template/cpp-app/src/App.h +0 -4
- package/template/cs-app/src/App.xaml.cs +0 -5
- package/template/cs-app/src/MainPage.xaml.cs +1 -10
- package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
- package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
- package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
- package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
- package/template/metro.devMode.config.js +2 -51
- package/typings-index.js +5 -1
- package/typings-index.js.map +1 -1
- package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
- package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
- package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
- package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
- package/Libraries/ReactNative/UIManagerInjection.js +0 -15
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
- package/PropertySheets/CppEnablePackageReferences.props +0 -13
- package/Shared/IHttpResource.h +0 -34
- package/Shared/cdebug.cpp +0 -6
- package/include/Shared/ViewManager.h +0 -34
|
@@ -0,0 +1,239 @@
|
|
|
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
|
+
* @format
|
|
8
|
+
* @flow strict-local
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// https://dom.spec.whatwg.org/#dictdef-eventinit
|
|
12
|
+
type Event$Init = {
|
|
13
|
+
bubbles?: boolean,
|
|
14
|
+
cancelable?: boolean,
|
|
15
|
+
composed?: boolean,
|
|
16
|
+
/** Non-standard. See `composed` instead. */
|
|
17
|
+
scoped?: boolean,
|
|
18
|
+
...
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* This is a copy of the Event interface defined in Flow:
|
|
23
|
+
* https://github.com/facebook/flow/blob/741104e69c43057ebd32804dd6bcc1b5e97548ea/lib/dom.js
|
|
24
|
+
* which is itself a faithful interface of the W3 spec:
|
|
25
|
+
* https://dom.spec.whatwg.org/#interface-event
|
|
26
|
+
*
|
|
27
|
+
* Since Flow assumes that Event is provided and is on the global object,
|
|
28
|
+
* we must provide an implementation of Event for CustomEvent (and future
|
|
29
|
+
* alignment of React Native's event system with the W3 spec).
|
|
30
|
+
*/
|
|
31
|
+
interface IEvent {
|
|
32
|
+
constructor(type: string, eventInitDict?: Event$Init): void;
|
|
33
|
+
/**
|
|
34
|
+
* Returns the type of event, e.g. "click", "hashchange", or "submit".
|
|
35
|
+
*/
|
|
36
|
+
+type: string;
|
|
37
|
+
/**
|
|
38
|
+
* Returns the object to which event is dispatched (its target).
|
|
39
|
+
*/
|
|
40
|
+
+target: EventTarget; // TODO: nullable
|
|
41
|
+
/** @deprecated */
|
|
42
|
+
+srcElement: Element; // TODO: nullable
|
|
43
|
+
/**
|
|
44
|
+
* Returns the object whose event listener's callback is currently being invoked.
|
|
45
|
+
*/
|
|
46
|
+
+currentTarget: EventTarget; // TODO: nullable
|
|
47
|
+
/**
|
|
48
|
+
* Returns the invocation target objects of event's path (objects on which
|
|
49
|
+
* listeners will be invoked), except for any nodes in shadow trees of which
|
|
50
|
+
* the shadow root's mode is "closed" that are not reachable from event's
|
|
51
|
+
* currentTarget.
|
|
52
|
+
*/
|
|
53
|
+
composedPath(): Array<EventTarget>;
|
|
54
|
+
|
|
55
|
+
+NONE: number;
|
|
56
|
+
+AT_TARGET: number;
|
|
57
|
+
+BUBBLING_PHASE: number;
|
|
58
|
+
+CAPTURING_PHASE: number;
|
|
59
|
+
/**
|
|
60
|
+
* Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET,
|
|
61
|
+
* and BUBBLING_PHASE.
|
|
62
|
+
*/
|
|
63
|
+
+eventPhase: number;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* When dispatched in a tree, invoking this method prevents event from reaching
|
|
67
|
+
* any objects other than the current object.
|
|
68
|
+
*/
|
|
69
|
+
stopPropagation(): void;
|
|
70
|
+
/**
|
|
71
|
+
* Invoking this method prevents event from reaching any registered event
|
|
72
|
+
* listeners after the current one finishes running and, when dispatched in a
|
|
73
|
+
* tree, also prevents event from reaching any other objects.
|
|
74
|
+
*/
|
|
75
|
+
stopImmediatePropagation(): void;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Returns true or false depending on how event was initialized. True if
|
|
79
|
+
* event goes through its target's ancestors in reverse tree order, and
|
|
80
|
+
* false otherwise.
|
|
81
|
+
*/
|
|
82
|
+
+bubbles: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Returns true or false depending on how event was initialized. Its
|
|
85
|
+
* return value does not always carry meaning, but true can indicate
|
|
86
|
+
* that part of the operation during which event was dispatched, can
|
|
87
|
+
* be canceled by invoking the preventDefault() method.
|
|
88
|
+
*/
|
|
89
|
+
+cancelable: boolean;
|
|
90
|
+
// returnValue: boolean; // legacy, and some subclasses still define it as a string!
|
|
91
|
+
/**
|
|
92
|
+
* If invoked when the cancelable attribute value is true, and while
|
|
93
|
+
* executing a listener for the event with passive set to false, signals to
|
|
94
|
+
* the operation that caused event to be dispatched that it needs to be
|
|
95
|
+
* canceled.
|
|
96
|
+
*/
|
|
97
|
+
preventDefault(): void;
|
|
98
|
+
/**
|
|
99
|
+
* Returns true if preventDefault() was invoked successfully to indicate
|
|
100
|
+
* cancelation, and false otherwise.
|
|
101
|
+
*/
|
|
102
|
+
+defaultPrevented: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Returns true or false depending on how event was initialized. True if
|
|
105
|
+
* event invokes listeners past a ShadowRoot node that is the root of its
|
|
106
|
+
* target, and false otherwise.
|
|
107
|
+
*/
|
|
108
|
+
+composed: boolean;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Returns true if event was dispatched by the user agent, and false otherwise.
|
|
112
|
+
*/
|
|
113
|
+
+isTrusted: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Returns the event's timestamp as the number of milliseconds measured relative
|
|
116
|
+
* to the time origin.
|
|
117
|
+
*/
|
|
118
|
+
+timeStamp: number;
|
|
119
|
+
|
|
120
|
+
/** Non-standard. See Event.prototype.composedPath */
|
|
121
|
+
+deepPath?: () => EventTarget[];
|
|
122
|
+
/** Non-standard. See Event.prototype.composed */
|
|
123
|
+
+scoped: boolean;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* @deprecated
|
|
127
|
+
*/
|
|
128
|
+
initEvent(type: string, bubbles: boolean, cancelable: boolean): void;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
class EventPolyfill implements IEvent {
|
|
132
|
+
type: string;
|
|
133
|
+
bubbles: boolean;
|
|
134
|
+
cancelable: boolean;
|
|
135
|
+
composed: boolean;
|
|
136
|
+
// Non-standard. See `composed` instead.
|
|
137
|
+
scoped: boolean;
|
|
138
|
+
isTrusted: boolean;
|
|
139
|
+
defaultPrevented: boolean;
|
|
140
|
+
timeStamp: number;
|
|
141
|
+
|
|
142
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase
|
|
143
|
+
NONE: number;
|
|
144
|
+
AT_TARGET: number;
|
|
145
|
+
BUBBLING_PHASE: number;
|
|
146
|
+
CAPTURING_PHASE: number;
|
|
147
|
+
|
|
148
|
+
eventPhase: number;
|
|
149
|
+
|
|
150
|
+
currentTarget: EventTarget; // TODO: nullable
|
|
151
|
+
target: EventTarget; // TODO: nullable
|
|
152
|
+
/** @deprecated */
|
|
153
|
+
srcElement: Element; // TODO: nullable
|
|
154
|
+
|
|
155
|
+
// React Native-specific: proxy data to a SyntheticEvent when
|
|
156
|
+
// certain methods are called.
|
|
157
|
+
// SyntheticEvent will also have a reference to this instance -
|
|
158
|
+
// it is circular - and both classes use this reference to keep
|
|
159
|
+
// data with the other in sync.
|
|
160
|
+
_syntheticEvent: mixed;
|
|
161
|
+
|
|
162
|
+
constructor(type: string, eventInitDict?: Event$Init): void {
|
|
163
|
+
this.type = type;
|
|
164
|
+
this.bubbles = !!(eventInitDict?.bubbles || false);
|
|
165
|
+
this.cancelable = !!(eventInitDict?.cancelable || false);
|
|
166
|
+
this.composed = !!(eventInitDict?.composed || false);
|
|
167
|
+
this.scoped = !!(eventInitDict?.scoped || false);
|
|
168
|
+
|
|
169
|
+
// TODO: somehow guarantee that only "private" instantiations of Event
|
|
170
|
+
// can set this to true
|
|
171
|
+
this.isTrusted = false;
|
|
172
|
+
|
|
173
|
+
// TODO: in the future we'll want to make sure this has the same
|
|
174
|
+
// time-basis as events originating from native
|
|
175
|
+
this.timeStamp = Date.now();
|
|
176
|
+
|
|
177
|
+
this.defaultPrevented = false;
|
|
178
|
+
|
|
179
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase
|
|
180
|
+
this.NONE = 0;
|
|
181
|
+
this.AT_TARGET = 1;
|
|
182
|
+
this.BUBBLING_PHASE = 2;
|
|
183
|
+
this.CAPTURING_PHASE = 3;
|
|
184
|
+
this.eventPhase = this.NONE;
|
|
185
|
+
|
|
186
|
+
// $FlowFixMe
|
|
187
|
+
this.currentTarget = null;
|
|
188
|
+
// $FlowFixMe
|
|
189
|
+
this.target = null;
|
|
190
|
+
// $FlowFixMe
|
|
191
|
+
this.srcElement = null;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
composedPath(): Array<EventTarget> {
|
|
195
|
+
throw new Error('TODO: not yet implemented');
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
preventDefault(): void {
|
|
199
|
+
this.defaultPrevented = true;
|
|
200
|
+
|
|
201
|
+
if (this._syntheticEvent != null) {
|
|
202
|
+
// $FlowFixMe
|
|
203
|
+
this._syntheticEvent.preventDefault();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
initEvent(type: string, bubbles: boolean, cancelable: boolean): void {
|
|
208
|
+
throw new Error(
|
|
209
|
+
'TODO: not yet implemented. This method is also deprecated.',
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
stopImmediatePropagation(): void {
|
|
214
|
+
throw new Error('TODO: not yet implemented');
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
stopPropagation(): void {
|
|
218
|
+
if (this._syntheticEvent != null) {
|
|
219
|
+
// $FlowFixMe
|
|
220
|
+
this._syntheticEvent.stopPropagation();
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
setSyntheticEvent(value: mixed): void {
|
|
225
|
+
this._syntheticEvent = value;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// Assertion magic for polyfill follows.
|
|
230
|
+
declare var checkEvent: Event;
|
|
231
|
+
|
|
232
|
+
/*::
|
|
233
|
+
// This can be a strict mode error at runtime so put it in a Flow comment.
|
|
234
|
+
(checkEvent: IEvent);
|
|
235
|
+
*/
|
|
236
|
+
|
|
237
|
+
global.Event = EventPolyfill;
|
|
238
|
+
|
|
239
|
+
export default EventPolyfill;
|
|
@@ -306,12 +306,6 @@ Image.queryCache = queryCache;
|
|
|
306
306
|
* comment and run Flow. */
|
|
307
307
|
Image.resolveAssetSource = resolveAssetSource;
|
|
308
308
|
|
|
309
|
-
/**
|
|
310
|
-
* Switch to `deprecated-react-native-prop-types` for compatibility with future
|
|
311
|
-
* releases. This is deprecated and will be removed in the future.
|
|
312
|
-
*/
|
|
313
|
-
Image.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;
|
|
314
|
-
|
|
315
309
|
const styles = StyleSheet.create({
|
|
316
310
|
base: {
|
|
317
311
|
overflow: 'hidden',
|
|
@@ -232,12 +232,6 @@ Image.queryCache = queryCache;
|
|
|
232
232
|
* delete this comment and run Flow. */
|
|
233
233
|
Image.resolveAssetSource = resolveAssetSource;
|
|
234
234
|
|
|
235
|
-
/**
|
|
236
|
-
* Switch to `deprecated-react-native-prop-types` for compatibility with future
|
|
237
|
-
* releases. This is deprecated and will be removed in the future.
|
|
238
|
-
*/
|
|
239
|
-
Image.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;
|
|
240
|
-
|
|
241
235
|
const styles = StyleSheet.create({
|
|
242
236
|
base: {
|
|
243
237
|
overflow: 'hidden',
|
|
@@ -145,7 +145,7 @@ let Image = (props: ImagePropsType, forwardedRef) => {
|
|
|
145
145
|
return (
|
|
146
146
|
// [Windows
|
|
147
147
|
<TextAncestor.Consumer>
|
|
148
|
-
{
|
|
148
|
+
{hasTextAncestor => {
|
|
149
149
|
invariant(
|
|
150
150
|
!hasTextAncestor,
|
|
151
151
|
'Nesting of <Image> within <Text> is not currently supported.',
|
|
@@ -154,7 +154,7 @@ let Image = (props: ImagePropsType, forwardedRef) => {
|
|
|
154
154
|
|
|
155
155
|
return (
|
|
156
156
|
<ImageAnalyticsTagContext.Consumer>
|
|
157
|
-
{
|
|
157
|
+
{analyticTag => {
|
|
158
158
|
return (
|
|
159
159
|
<ImageViewNativeComponent
|
|
160
160
|
{...props}
|
|
@@ -248,12 +248,6 @@ Image.queryCache = queryCache;
|
|
|
248
248
|
* delete this comment and run Flow. */
|
|
249
249
|
Image.resolveAssetSource = resolveAssetSource;
|
|
250
250
|
|
|
251
|
-
/**
|
|
252
|
-
* Switch to `deprecated-react-native-prop-types` for compatibility with future
|
|
253
|
-
* releases. This is deprecated and will be removed in the future.
|
|
254
|
-
*/
|
|
255
|
-
Image.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;
|
|
256
|
-
|
|
257
251
|
const styles = StyleSheet.create({
|
|
258
252
|
base: {
|
|
259
253
|
overflow: 'hidden',
|
|
@@ -12,7 +12,11 @@ import type {ResolvedAssetSource} from './AssetSourceResolver';
|
|
|
12
12
|
import type {ImageProps} from './ImageProps';
|
|
13
13
|
import type {ViewProps} from '../Components/View/ViewPropTypes';
|
|
14
14
|
import * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';
|
|
15
|
-
import
|
|
15
|
+
import {ConditionallyIgnoredEventHandlers} from '../NativeComponent/ViewConfigIgnore';
|
|
16
|
+
import type {
|
|
17
|
+
HostComponent,
|
|
18
|
+
PartialViewConfig,
|
|
19
|
+
} from '../Renderer/shims/ReactNativeTypes';
|
|
16
20
|
import type {
|
|
17
21
|
ColorValue,
|
|
18
22
|
DangerouslyImpreciseStyle,
|
|
@@ -37,7 +41,7 @@ type Props = $ReadOnly<{
|
|
|
37
41
|
loadingIndicatorSrc?: ?string,
|
|
38
42
|
}>;
|
|
39
43
|
|
|
40
|
-
const
|
|
44
|
+
export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
41
45
|
Platform.OS === 'android'
|
|
42
46
|
? {
|
|
43
47
|
uiViewClassName: 'RCTImageView',
|
|
@@ -125,10 +129,21 @@ const ImageViewViewConfig =
|
|
|
125
129
|
tintColor: {
|
|
126
130
|
process: require('../StyleSheet/processColor'),
|
|
127
131
|
},
|
|
132
|
+
...ConditionallyIgnoredEventHandlers({
|
|
133
|
+
onLoadStart: true,
|
|
134
|
+
onLoad: true,
|
|
135
|
+
onLoadEnd: true,
|
|
136
|
+
onProgress: true,
|
|
137
|
+
onError: true,
|
|
138
|
+
onPartialLoad: true,
|
|
139
|
+
}),
|
|
128
140
|
},
|
|
129
141
|
};
|
|
130
142
|
|
|
131
143
|
const ImageViewNativeComponent: HostComponent<Props> =
|
|
132
|
-
NativeComponentRegistry.get<Props>(
|
|
144
|
+
NativeComponentRegistry.get<Props>(
|
|
145
|
+
'RCTImageView',
|
|
146
|
+
() => __INTERNAL_VIEW_CONFIG,
|
|
147
|
+
);
|
|
133
148
|
|
|
134
149
|
export default ImageViewNativeComponent;
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
import type {
|
|
13
|
+
import type {
|
|
14
|
+
HostComponent,
|
|
15
|
+
PartialViewConfig,
|
|
16
|
+
} from '../Renderer/shims/ReactNativeTypes';
|
|
14
17
|
import type {ViewProps} from '../Components/View/ViewPropTypes';
|
|
15
18
|
import type {ImageResizeMode} from './ImageResizeMode';
|
|
16
19
|
import * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';
|
|
@@ -24,19 +27,24 @@ type NativeProps = $ReadOnly<{
|
|
|
24
27
|
headers?: ?{[string]: string},
|
|
25
28
|
}>;
|
|
26
29
|
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
process: require('../StyleSheet/processColor'),
|
|
37
|
-
},
|
|
38
|
-
headers: true,
|
|
30
|
+
export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
|
|
31
|
+
uiViewClassName: 'RCTTextInlineImage',
|
|
32
|
+
bubblingEventTypes: {},
|
|
33
|
+
directEventTypes: {},
|
|
34
|
+
validAttributes: {
|
|
35
|
+
resizeMode: true,
|
|
36
|
+
src: true,
|
|
37
|
+
tintColor: {
|
|
38
|
+
process: require('../StyleSheet/processColor'),
|
|
39
39
|
},
|
|
40
|
-
|
|
40
|
+
headers: true,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const TextInlineImage: HostComponent<NativeProps> =
|
|
45
|
+
NativeComponentRegistry.get<NativeProps>(
|
|
46
|
+
'RCTTextInlineImage',
|
|
47
|
+
() => __INTERNAL_VIEW_CONFIG,
|
|
48
|
+
);
|
|
41
49
|
|
|
42
|
-
|
|
50
|
+
export default TextInlineImage;
|
|
@@ -19,6 +19,7 @@ const React = require('react');
|
|
|
19
19
|
const ReactNative = require('../Renderer/shims/ReactNative');
|
|
20
20
|
const StyleSheet = require('../StyleSheet/StyleSheet');
|
|
21
21
|
const View = require('../Components/View/View');
|
|
22
|
+
const ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');
|
|
22
23
|
|
|
23
24
|
const invariant = require('invariant');
|
|
24
25
|
|
|
@@ -47,10 +48,7 @@ const renderers = findRenderers();
|
|
|
47
48
|
// Required for React DevTools to view/edit React Native styles in Flipper.
|
|
48
49
|
// Flipper doesn't inject these values when initializing DevTools.
|
|
49
50
|
hook.resolveRNStyle = require('../StyleSheet/flattenStyle');
|
|
50
|
-
|
|
51
|
-
hook.nativeStyleEditorValidAttributes = Object.keys(
|
|
52
|
-
viewConfig.validAttributes.style,
|
|
53
|
-
);
|
|
51
|
+
hook.nativeStyleEditorValidAttributes = Object.keys(ReactNativeStyleAttributes);
|
|
54
52
|
|
|
55
53
|
function findRenderers(): $ReadOnlyArray<ReactRenderer> {
|
|
56
54
|
const allRenderers = Array.from(hook.renderers.values());
|
|
@@ -10,14 +10,15 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
+
import type {SpyData} from '../BatchedBridge/MessageQueue';
|
|
13
14
|
const JSEventLoopWatchdog = require('./JSEventLoopWatchdog');
|
|
14
|
-
const MessageQueue = require('../BatchedBridge/MessageQueue');
|
|
15
15
|
|
|
16
|
+
const MessageQueue = require('../BatchedBridge/MessageQueue');
|
|
16
17
|
const infoLog = require('../Utilities/infoLog');
|
|
17
18
|
|
|
18
19
|
const BridgeSpyStallHandler = {
|
|
19
20
|
register: function () {
|
|
20
|
-
let spyBuffer = [];
|
|
21
|
+
let spyBuffer: Array<SpyData> = [];
|
|
21
22
|
MessageQueue.spy(data => {
|
|
22
23
|
spyBuffer.push(data);
|
|
23
24
|
});
|
|
@@ -27,7 +28,7 @@ const BridgeSpyStallHandler = {
|
|
|
27
28
|
infoLog(
|
|
28
29
|
spyBuffer.length + ' bridge messages during stall: ',
|
|
29
30
|
spyBuffer.map(info => {
|
|
30
|
-
let args = '<args>';
|
|
31
|
+
let args: string | Array<?string> = '<args>';
|
|
31
32
|
try {
|
|
32
33
|
args = JSON.stringify(info.args);
|
|
33
34
|
} catch (e1) {
|
|
@@ -91,7 +91,6 @@ const InteractionManager = {
|
|
|
91
91
|
onFulfill?: ?(void) => ?(Promise<U> | U),
|
|
92
92
|
onReject?: ?(error: mixed) => ?(Promise<U> | U),
|
|
93
93
|
) => Promise<U>,
|
|
94
|
-
done: () => void,
|
|
95
94
|
cancel: () => void,
|
|
96
95
|
...
|
|
97
96
|
} {
|
|
@@ -110,16 +109,6 @@ const InteractionManager = {
|
|
|
110
109
|
return {
|
|
111
110
|
// $FlowFixMe[method-unbinding] added when improving typing for this parameters
|
|
112
111
|
then: promise.then.bind(promise),
|
|
113
|
-
done: (...args) => {
|
|
114
|
-
// $FlowFixMe[method-unbinding] added when improving typing for this parameters
|
|
115
|
-
if (promise.done) {
|
|
116
|
-
return promise.done(...args);
|
|
117
|
-
} else {
|
|
118
|
-
console.warn(
|
|
119
|
-
'Tried to call done when not supported by current Promise implementation.',
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
112
|
cancel: function () {
|
|
124
113
|
_taskQueue.cancelTasks(tasks);
|
|
125
114
|
},
|
|
@@ -165,7 +154,7 @@ const _interactionSet = new Set();
|
|
|
165
154
|
const _addInteractionSet = new Set();
|
|
166
155
|
const _deleteInteractionSet = new Set();
|
|
167
156
|
const _taskQueue = new TaskQueue({onMoreTasks: _scheduleUpdate});
|
|
168
|
-
let _nextUpdateHandle = 0;
|
|
157
|
+
let _nextUpdateHandle: $FlowFixMe | TimeoutID = 0;
|
|
169
158
|
let _inc = 0;
|
|
170
159
|
let _deadline = -1;
|
|
171
160
|
|
|
@@ -171,10 +171,11 @@ class TaskQueue {
|
|
|
171
171
|
this.hasTasksToProcess() && this._onMoreTasks();
|
|
172
172
|
})
|
|
173
173
|
.catch(ex => {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
174
|
+
setTimeout(() => {
|
|
175
|
+
ex.message = `TaskQueue: Error resolving Promise in task ${task.name}: ${ex.message}`;
|
|
176
|
+
throw ex;
|
|
177
|
+
}, 0);
|
|
178
|
+
});
|
|
178
179
|
}
|
|
179
180
|
}
|
|
180
181
|
|
|
@@ -19,6 +19,7 @@ import type {
|
|
|
19
19
|
} from '../Renderer/shims/ReactNativeTypes';
|
|
20
20
|
|
|
21
21
|
import Platform from '../Utilities/Platform';
|
|
22
|
+
import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
|
|
22
23
|
|
|
23
24
|
// Reexport type
|
|
24
25
|
export type LayoutAnimationConfig = LayoutAnimationConfig_;
|
|
@@ -26,6 +27,13 @@ export type LayoutAnimationConfig = LayoutAnimationConfig_;
|
|
|
26
27
|
type OnAnimationDidEndCallback = () => void;
|
|
27
28
|
type OnAnimationDidFailCallback = () => void;
|
|
28
29
|
|
|
30
|
+
let isLayoutAnimationEnabled: boolean =
|
|
31
|
+
ReactNativeFeatureFlags.isLayoutAnimationEnabled();
|
|
32
|
+
|
|
33
|
+
function setEnabled(value: boolean) {
|
|
34
|
+
isLayoutAnimationEnabled = isLayoutAnimationEnabled;
|
|
35
|
+
}
|
|
36
|
+
|
|
29
37
|
/**
|
|
30
38
|
* Configures the next commit to be animated.
|
|
31
39
|
*
|
|
@@ -43,6 +51,10 @@ function configureNext(
|
|
|
43
51
|
return;
|
|
44
52
|
}
|
|
45
53
|
|
|
54
|
+
if (!isLayoutAnimationEnabled) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
46
58
|
// Since LayoutAnimations may possibly be disabled for now on iOS (Fabric),
|
|
47
59
|
// or Android (non-Fabric) we race a setTimeout with animation completion,
|
|
48
60
|
// in case onComplete is never called
|
|
@@ -181,6 +193,7 @@ const LayoutAnimation = {
|
|
|
181
193
|
spring: (configureNext.bind(null, Presets.spring): (
|
|
182
194
|
onAnimationDidEnd?: OnAnimationDidEndCallback,
|
|
183
195
|
) => void),
|
|
196
|
+
setEnabled,
|
|
184
197
|
};
|
|
185
198
|
|
|
186
199
|
module.exports = LayoutAnimation;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @flow strict-local
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import
|
|
11
|
+
import type {EventSubscription} from '../vendor/emitter/EventEmitter';
|
|
12
12
|
import NativeEventEmitter from '../EventEmitter/NativeEventEmitter';
|
|
13
13
|
import InteractionManager from '../Interaction/InteractionManager';
|
|
14
14
|
import Platform from '../Utilities/Platform';
|
|
@@ -26,6 +26,7 @@ import type {
|
|
|
26
26
|
} from './ViewabilityHelper';
|
|
27
27
|
import type {RenderItemType, RenderItemProps} from './VirtualizedList';
|
|
28
28
|
import {keyExtractor as defaultKeyExtractor} from './VirtualizeUtils';
|
|
29
|
+
import memoizeOne from 'memoize-one';
|
|
29
30
|
|
|
30
31
|
type RequiredProps<ItemT> = {|
|
|
31
32
|
/**
|
|
@@ -141,6 +142,10 @@ type OptionalProps<ItemT> = {|
|
|
|
141
142
|
* See `ScrollView` for flow type and further documentation.
|
|
142
143
|
*/
|
|
143
144
|
fadingEdgeLength?: ?number,
|
|
145
|
+
/**
|
|
146
|
+
* Enable an optimization to memoize the item renderer to prevent unnecessary rerenders.
|
|
147
|
+
*/
|
|
148
|
+
strictMode?: boolean,
|
|
144
149
|
|};
|
|
145
150
|
|
|
146
151
|
/**
|
|
@@ -578,9 +583,14 @@ class FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {
|
|
|
578
583
|
};
|
|
579
584
|
}
|
|
580
585
|
|
|
581
|
-
_renderer = (
|
|
582
|
-
|
|
583
|
-
|
|
586
|
+
_renderer = (
|
|
587
|
+
ListItemComponent: ?(React.ComponentType<any> | React.Element<any>),
|
|
588
|
+
renderItem: ?RenderItemType<ItemT>,
|
|
589
|
+
columnWrapperStyle: ?ViewStyleProp,
|
|
590
|
+
numColumns: ?number,
|
|
591
|
+
extraData: ?any,
|
|
592
|
+
) => {
|
|
593
|
+
const cols = numColumnsOrDefault(numColumns);
|
|
584
594
|
|
|
585
595
|
let virtualizedListRenderKey = ListItemComponent
|
|
586
596
|
? 'ListItemComponent'
|
|
@@ -605,7 +615,7 @@ class FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {
|
|
|
605
615
|
* This comment suppresses an error found when Flow v0.111 was deployed.
|
|
606
616
|
* To see the error, delete this comment and run Flow. */
|
|
607
617
|
[virtualizedListRenderKey]: (info: RenderItemProps<ItemT>) => {
|
|
608
|
-
if (
|
|
618
|
+
if (cols > 1) {
|
|
609
619
|
const {item, index} = info;
|
|
610
620
|
invariant(
|
|
611
621
|
Array.isArray(item),
|
|
@@ -616,7 +626,7 @@ class FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {
|
|
|
616
626
|
{item.map((it, kk) => {
|
|
617
627
|
const element = renderer({
|
|
618
628
|
item: it,
|
|
619
|
-
index: index *
|
|
629
|
+
index: index * cols + kk,
|
|
620
630
|
separators: info.separators,
|
|
621
631
|
});
|
|
622
632
|
return element != null ? (
|
|
@@ -632,14 +642,19 @@ class FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {
|
|
|
632
642
|
};
|
|
633
643
|
};
|
|
634
644
|
|
|
645
|
+
_memoizedRenderer = memoizeOne(this._renderer);
|
|
646
|
+
|
|
635
647
|
render(): React.Node {
|
|
636
648
|
const {
|
|
637
649
|
numColumns,
|
|
638
650
|
columnWrapperStyle,
|
|
639
651
|
removeClippedSubviews: _removeClippedSubviews,
|
|
652
|
+
strictMode = false,
|
|
640
653
|
...restProps
|
|
641
654
|
} = this.props;
|
|
642
655
|
|
|
656
|
+
const renderer = strictMode ? this._memoizedRenderer : this._renderer;
|
|
657
|
+
|
|
643
658
|
return (
|
|
644
659
|
<VirtualizedList
|
|
645
660
|
{...restProps}
|
|
@@ -651,7 +666,13 @@ class FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {
|
|
|
651
666
|
removeClippedSubviews={removeClippedSubviewsOrDefault(
|
|
652
667
|
_removeClippedSubviews,
|
|
653
668
|
)}
|
|
654
|
-
{...
|
|
669
|
+
{...renderer(
|
|
670
|
+
this.props.ListItemComponent,
|
|
671
|
+
this.props.renderItem,
|
|
672
|
+
columnWrapperStyle,
|
|
673
|
+
numColumns,
|
|
674
|
+
this.props.extraData,
|
|
675
|
+
)}
|
|
655
676
|
/>
|
|
656
677
|
);
|
|
657
678
|
}
|