react-native-windows 0.82.1 → 0.83.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/.flowconfig +2 -7
  2. package/Libraries/Animated/components/AnimatedFlatList.js +5 -3
  3. package/Libraries/Animated/components/AnimatedImage.js +4 -3
  4. package/Libraries/Animated/components/AnimatedSectionList.js +2 -2
  5. package/Libraries/Animated/components/AnimatedText.js +7 -3
  6. package/Libraries/Animated/components/AnimatedView.js +3 -2
  7. package/Libraries/Animated/createAnimatedComponent.js +24 -12
  8. package/Libraries/Animated/nodes/AnimatedColor.js +26 -10
  9. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +43 -15
  10. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +43 -15
  11. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +2 -2
  12. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +2 -2
  13. package/Libraries/Components/Glyph/Glyph.js +4 -1
  14. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +2 -2
  15. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +3 -3
  16. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +2 -2
  17. package/Libraries/Components/ScrollView/ScrollView.js +1 -0
  18. package/Libraries/Components/ScrollView/ScrollView.windows.js +1 -0
  19. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +6 -6
  20. package/Libraries/Components/Switch/Switch.d.ts +2 -2
  21. package/Libraries/Components/Switch/Switch.windows.js +1 -1
  22. package/Libraries/Components/TextInput/TextInput.d.ts +2 -5
  23. package/Libraries/Components/TextInput/TextInput.js +6 -0
  24. package/Libraries/Components/TextInput/TextInput.windows.js +6 -0
  25. package/Libraries/Components/Touchable/TouchableBounce.js +7 -7
  26. package/Libraries/Components/Touchable/TouchableBounce.windows.js +7 -7
  27. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  28. package/Libraries/Components/View/ReactNativeStyleAttributes.js +19 -1
  29. package/Libraries/Components/View/View.d.ts +2 -2
  30. package/Libraries/Components/View/View.windows.js +0 -1
  31. package/Libraries/Components/View/ViewNativeComponent.js +13 -1
  32. package/Libraries/Core/ReactNativeVersion.js +3 -3
  33. package/Libraries/Core/setUpPerformance.js +2 -0
  34. package/Libraries/Debugging/DebuggingOverlay.js +14 -14
  35. package/Libraries/Debugging/DebuggingOverlayRegistry.js +8 -2
  36. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +5 -2
  37. package/Libraries/Image/Image.d.ts +3 -3
  38. package/Libraries/Image/ImageInjection.js +3 -6
  39. package/Libraries/Image/ImageTypes.flow.js +3 -7
  40. package/Libraries/Lists/FlatList.js +8 -8
  41. package/Libraries/Lists/SectionList.d.ts +5 -1
  42. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  43. package/Libraries/Lists/VirtualizedList.js +1 -0
  44. package/Libraries/LogBox/UI/AnsiHighlight.js +4 -1
  45. package/Libraries/NativeComponent/BaseViewConfig.android.js +11 -2
  46. package/Libraries/NativeComponent/NativeComponentRegistry.d.ts +98 -0
  47. package/Libraries/NativeComponent/NativeComponentRegistry.js +2 -0
  48. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +3 -1
  49. package/Libraries/NativeComponent/ViewConfigIgnore.windows.js +45 -0
  50. package/Libraries/Network/RCTNetworking.android.js +3 -1
  51. package/Libraries/Network/RCTNetworking.ios.js +3 -0
  52. package/Libraries/Network/RCTNetworking.windows.js +3 -0
  53. package/Libraries/Network/XMLHttpRequest.js +1 -41
  54. package/Libraries/Pressability/usePressability.js +14 -3
  55. package/Libraries/ReactNative/PaperUIManager.windows.js +3 -3
  56. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +20 -82
  57. package/Libraries/ReactNative/getNativeComponentAttributes.js +12 -0
  58. package/Libraries/Renderer/implementations/ReactFabric-dev.js +6759 -4478
  59. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3169 -3119
  60. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4732 -3535
  61. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +6646 -4070
  62. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3136 -2825
  63. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4761 -3312
  64. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  65. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
  66. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +2 -1
  67. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  68. package/Libraries/StyleSheet/StyleSheetTypes.js +44 -0
  69. package/Libraries/StyleSheet/processBackgroundPosition.js +284 -0
  70. package/Libraries/StyleSheet/processBackgroundRepeat.js +105 -0
  71. package/Libraries/StyleSheet/processBackgroundSize.js +104 -0
  72. package/Libraries/Text/Text.d.ts +2 -2
  73. package/Libraries/Text/TextNativeComponent.js +10 -0
  74. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -9
  75. package/Libraries/Utilities/DevLoadingView.js +14 -6
  76. package/Libraries/Utilities/HMRClient.js +13 -5
  77. package/Microsoft.ReactNative/Base/CxxReactIncludes.h +11 -0
  78. package/Microsoft.ReactNative/CompositionComponentView.idl +2 -0
  79. package/Microsoft.ReactNative/CompositionHwndHost.idl +1 -0
  80. package/Microsoft.ReactNative/Fabric/ComponentView.cpp +1 -1
  81. package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -1
  82. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +10 -40
  83. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +3 -80
  84. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.cpp +45 -12
  85. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.h +8 -0
  86. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +61 -74
  87. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +4 -0
  88. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +1 -0
  89. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +4 -3
  90. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +2 -1
  91. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeWindow.cpp +245 -0
  92. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeWindow.h +80 -0
  93. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +20 -36
  94. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +70 -49
  95. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +4 -1
  96. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +5 -0
  97. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +7 -2
  98. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +1 -0
  99. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -1
  100. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -1
  101. package/Microsoft.ReactNative/Modules/LogBoxModule.cpp +20 -94
  102. package/Microsoft.ReactNative/Modules/LogBoxModule.h +1 -3
  103. package/Microsoft.ReactNative/Pch/pch.h +2 -0
  104. package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +5 -0
  105. package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -0
  106. package/Microsoft.ReactNative/ReactNativeAppBuilder.cpp +0 -41
  107. package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +0 -11
  108. package/Microsoft.ReactNative/ReactNativeIsland.idl +2 -3
  109. package/Microsoft.ReactNative/ReactNativeWin32App.cpp +31 -101
  110. package/Microsoft.ReactNative/ReactNativeWin32App.h +2 -13
  111. package/Microsoft.ReactNative/ReactNativeWindow.idl +44 -0
  112. package/Microsoft.ReactNative.Cxx/AutoDraw.h +9 -1
  113. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +13 -16
  114. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +24 -36
  115. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +5 -8
  116. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +8 -6
  117. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +32 -49
  118. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +27 -76
  119. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +4 -2
  120. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +19 -18
  121. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +25 -48
  122. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Convert.h +38 -31
  123. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +11 -6
  124. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/EventEmitter.h +47 -45
  125. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Function.h +69 -89
  126. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/HighResTimeStamp.h +8 -8
  127. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +6 -6
  128. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +16 -8
  129. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +17 -24
  130. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +17 -17
  131. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +20 -29
  132. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +2 -7
  133. package/Microsoft.ReactNative.Cxx/ReactCommon/react/timing/primitives.h +127 -115
  134. package/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.props +10 -0
  135. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.props +10 -0
  136. package/PropertySheets/Generated/PackageVersion.g.props +5 -5
  137. package/PropertySheets/Warnings.props +2 -1
  138. package/ReactCommon/ReactCommon.vcxproj +21 -12
  139. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +2 -2
  140. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +381 -0
  141. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +49 -0
  142. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +145 -0
  143. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +100 -0
  144. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +256 -0
  145. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +13 -4
  146. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +93 -0
  147. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +149 -0
  148. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +25 -35
  149. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +86 -67
  150. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSIExecutor.cpp +629 -0
  151. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +123 -0
  152. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +84 -68
  153. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +31 -35
  154. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/Utf8.h +4 -5
  155. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +2 -1
  156. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +24 -36
  157. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +28 -66
  158. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +414 -0
  159. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +3 -3
  160. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/image/conversions.h +8 -4
  161. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +19 -16
  162. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +8 -9
  163. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +25 -95
  164. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +85 -42
  165. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +81 -0
  166. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +140 -0
  167. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h +25 -31
  168. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +746 -0
  169. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +702 -0
  170. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +1 -15
  171. package/Scripts/creaternwapp.cmd +1 -1
  172. package/Scripts/perf/compare-results.js +357 -0
  173. package/Scripts/perf/create-perf-test.js +343 -0
  174. package/Scripts/perf/post-pr-comment.js +210 -0
  175. package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +8 -0
  176. package/Shared/Hermes/HermesRuntimeTargetDelegate.h +3 -0
  177. package/Shared/Shared.vcxitems +24 -12
  178. package/Shared/Shared.vcxitems.filters +11 -3
  179. package/codegen/NativeIntersectionObserverSpec.g.h +2 -0
  180. package/codegen/NativeNetworkingIOSSpec.g.h +2 -0
  181. package/codegen/NativePerformanceSpec.g.h +6 -0
  182. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +229 -139
  183. package/codegen/react/components/rnwcore/ActivityIndicatorView.g.h +2 -1
  184. package/codegen/react/components/rnwcore/AndroidDrawerLayout.g.h +42 -25
  185. package/codegen/react/components/rnwcore/AndroidHorizontalScrollContentView.g.h +2 -1
  186. package/codegen/react/components/rnwcore/AndroidProgressBar.g.h +2 -1
  187. package/codegen/react/components/rnwcore/AndroidSwipeRefreshLayout.g.h +11 -6
  188. package/codegen/react/components/rnwcore/AndroidSwitch.g.h +11 -6
  189. package/codegen/react/components/rnwcore/DebuggingOverlay.g.h +1 -0
  190. package/codegen/react/components/rnwcore/InputAccessory.g.h +2 -1
  191. package/codegen/react/components/rnwcore/ModalHostView.g.h +40 -23
  192. package/codegen/react/components/rnwcore/Props.cpp +6 -1
  193. package/codegen/react/components/rnwcore/Props.h +1 -0
  194. package/codegen/react/components/rnwcore/PullToRefreshView.g.h +11 -6
  195. package/codegen/react/components/rnwcore/SafeAreaView.g.h +1 -0
  196. package/codegen/react/components/rnwcore/Switch.g.h +11 -6
  197. package/codegen/react/components/rnwcore/UnimplementedNativeView.g.h +2 -1
  198. package/codegen/react/components/rnwcore/VirtualView.g.h +41 -8
  199. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +45 -8
  200. package/codegen/rnwcoreJSI.h +3973 -6059
  201. package/index.js +6 -0
  202. package/index.windows.js +6 -0
  203. package/jest/mockComponent.js +6 -6
  204. package/jest/setup.js +15 -10
  205. package/package.json +27 -27
  206. package/src/private/components/virtualview/VirtualView.js +22 -27
  207. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +6 -0
  208. package/src/private/featureflags/ReactNativeFeatureFlags.js +100 -19
  209. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +18 -3
  210. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  211. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +1 -1
  212. package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +1 -0
  213. package/src/private/webapis/dom/nodes/ReactNativeElement.js +12 -2
  214. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +76 -15
  215. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +1 -0
  216. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  217. package/src/private/webapis/performance/ResourceTiming.js +31 -4
  218. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +4 -1
  219. package/src/private/webapis/performance/specs/NativePerformance.js +3 -0
  220. package/stubs/double-conversion/double-conversion.h +5 -0
  221. package/templates/cpp-app/template.config.js +1 -1
  222. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +3 -1
  223. package/templates/cpp-lib/template.config.js +1 -1
  224. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +1 -1
  225. package/types/index.d.ts +1 -0
  226. package/types/public/ReactNativeTypes.d.ts +115 -2
  227. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +0 -152
  228. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +0 -1574
  229. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +0 -528
  230. package/Scripts/OpenSSL.nuspec +0 -39
  231. package/Scripts/OpenSSL.targets +0 -36
  232. package/codegen/rnwcoreJSI-generated.cpp +0 -3470
@@ -28,7 +28,8 @@ struct ActivityIndicatorViewProps : winrt::implements<ActivityIndicatorViewProps
28
28
  hidesWhenStopped = cloneFromProps->hidesWhenStopped;
29
29
  animating = cloneFromProps->animating;
30
30
  color = cloneFromProps->color;
31
- size = cloneFromProps->size;
31
+ size = cloneFromProps->size;
32
+
32
33
  }
33
34
  }
34
35
 
@@ -30,7 +30,11 @@ struct AndroidDrawerLayoutProps : winrt::implements<AndroidDrawerLayoutProps, wi
30
30
  drawerPosition = cloneFromProps->drawerPosition;
31
31
  drawerWidth = cloneFromProps->drawerWidth;
32
32
  drawerLockMode = cloneFromProps->drawerLockMode;
33
- statusBarBackgroundColor = cloneFromProps->statusBarBackgroundColor;
33
+ statusBarBackgroundColor = cloneFromProps->statusBarBackgroundColor;
34
+ onDrawerSlide = cloneFromProps->onDrawerSlide;
35
+ onDrawerStateChanged = cloneFromProps->onDrawerStateChanged;
36
+ onDrawerOpen = cloneFromProps->onDrawerOpen;
37
+ onDrawerClose = cloneFromProps->onDrawerClose;
34
38
  }
35
39
  }
36
40
 
@@ -56,58 +60,71 @@ struct AndroidDrawerLayoutProps : winrt::implements<AndroidDrawerLayoutProps, wi
56
60
  REACT_FIELD(statusBarBackgroundColor)
57
61
  winrt::Microsoft::ReactNative::Color statusBarBackgroundColor{nullptr};
58
62
 
63
+ // These fields can be used to determine if JS has registered for this event
64
+ REACT_FIELD(onDrawerSlide)
65
+ bool onDrawerSlide{false};
66
+
67
+ REACT_FIELD(onDrawerStateChanged)
68
+ bool onDrawerStateChanged{false};
69
+
70
+ REACT_FIELD(onDrawerOpen)
71
+ bool onDrawerOpen{false};
72
+
73
+ REACT_FIELD(onDrawerClose)
74
+ bool onDrawerClose{false};
75
+
59
76
  const winrt::Microsoft::ReactNative::ViewProps ViewProps;
60
77
  };
61
78
 
62
- REACT_STRUCT(AndroidDrawerLayout_OnDrawerSlide)
63
- struct AndroidDrawerLayout_OnDrawerSlide {
64
- REACT_FIELD(offset)
65
- float offset{};
79
+ REACT_STRUCT(AndroidDrawerLayoutSpec_onDrawerClose)
80
+ struct AndroidDrawerLayoutSpec_onDrawerClose {
66
81
  };
67
82
 
68
- REACT_STRUCT(AndroidDrawerLayout_OnDrawerStateChanged)
69
- struct AndroidDrawerLayout_OnDrawerStateChanged {
70
- REACT_FIELD(drawerState)
71
- int32_t drawerState{};
83
+ REACT_STRUCT(AndroidDrawerLayoutSpec_onDrawerOpen)
84
+ struct AndroidDrawerLayoutSpec_onDrawerOpen {
72
85
  };
73
86
 
74
- REACT_STRUCT(AndroidDrawerLayout_OnDrawerOpen)
75
- struct AndroidDrawerLayout_OnDrawerOpen {
87
+ REACT_STRUCT(AndroidDrawerLayoutSpec_onDrawerStateChanged)
88
+ struct AndroidDrawerLayoutSpec_onDrawerStateChanged {
89
+ REACT_FIELD(drawerState)
90
+ int32_t drawerState{};
76
91
  };
77
92
 
78
- REACT_STRUCT(AndroidDrawerLayout_OnDrawerClose)
79
- struct AndroidDrawerLayout_OnDrawerClose {
93
+ REACT_STRUCT(AndroidDrawerLayoutSpec_onDrawerSlide)
94
+ struct AndroidDrawerLayoutSpec_onDrawerSlide {
95
+ REACT_FIELD(offset)
96
+ float offset{};
80
97
  };
81
98
 
82
99
  struct AndroidDrawerLayoutEventEmitter {
83
100
  AndroidDrawerLayoutEventEmitter(const winrt::Microsoft::ReactNative::EventEmitter &eventEmitter)
84
101
  : m_eventEmitter(eventEmitter) {}
85
102
 
86
- using OnDrawerSlide = AndroidDrawerLayout_OnDrawerSlide;
87
- using OnDrawerStateChanged = AndroidDrawerLayout_OnDrawerStateChanged;
88
- using OnDrawerOpen = AndroidDrawerLayout_OnDrawerOpen;
89
- using OnDrawerClose = AndroidDrawerLayout_OnDrawerClose;
103
+ using OnDrawerSlide = AndroidDrawerLayoutSpec_onDrawerSlide;
104
+ using OnDrawerStateChanged = AndroidDrawerLayoutSpec_onDrawerStateChanged;
105
+ using OnDrawerOpen = AndroidDrawerLayoutSpec_onDrawerOpen;
106
+ using OnDrawerClose = AndroidDrawerLayoutSpec_onDrawerClose;
90
107
 
91
- void onDrawerSlide(OnDrawerSlide &value) const {
92
- m_eventEmitter.DispatchEvent(L"drawerSlide", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
108
+ void onDrawerSlide(OnDrawerSlide &&value) const {
109
+ m_eventEmitter.DispatchEvent(L"drawerSlide", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
93
110
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
94
111
  });
95
112
  }
96
113
 
97
- void onDrawerStateChanged(OnDrawerStateChanged &value) const {
98
- m_eventEmitter.DispatchEvent(L"drawerStateChanged", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
114
+ void onDrawerStateChanged(OnDrawerStateChanged &&value) const {
115
+ m_eventEmitter.DispatchEvent(L"drawerStateChanged", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
99
116
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
100
117
  });
101
118
  }
102
119
 
103
- void onDrawerOpen(OnDrawerOpen &value) const {
104
- m_eventEmitter.DispatchEvent(L"drawerOpen", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
120
+ void onDrawerOpen(OnDrawerOpen &&value) const {
121
+ m_eventEmitter.DispatchEvent(L"drawerOpen", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
105
122
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
106
123
  });
107
124
  }
108
125
 
109
- void onDrawerClose(OnDrawerClose &value) const {
110
- m_eventEmitter.DispatchEvent(L"drawerClose", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
126
+ void onDrawerClose(OnDrawerClose &&value) const {
127
+ m_eventEmitter.DispatchEvent(L"drawerClose", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
111
128
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
112
129
  });
113
130
  }
@@ -25,7 +25,8 @@ struct AndroidHorizontalScrollContentViewProps : winrt::implements<AndroidHorizo
25
25
  {
26
26
  if (cloneFrom) {
27
27
  auto cloneFromProps = cloneFrom.as<AndroidHorizontalScrollContentViewProps>();
28
- removeClippedSubviews = cloneFromProps->removeClippedSubviews;
28
+ removeClippedSubviews = cloneFromProps->removeClippedSubviews;
29
+
29
30
  }
30
31
  }
31
32
 
@@ -31,7 +31,8 @@ struct AndroidProgressBarProps : winrt::implements<AndroidProgressBarProps, winr
31
31
  progress = cloneFromProps->progress;
32
32
  animating = cloneFromProps->animating;
33
33
  color = cloneFromProps->color;
34
- testID = cloneFromProps->testID;
34
+ testID = cloneFromProps->testID;
35
+
35
36
  }
36
37
  }
37
38
 
@@ -30,7 +30,8 @@ struct AndroidSwipeRefreshLayoutProps : winrt::implements<AndroidSwipeRefreshLay
30
30
  progressBackgroundColor = cloneFromProps->progressBackgroundColor;
31
31
  size = cloneFromProps->size;
32
32
  progressViewOffset = cloneFromProps->progressViewOffset;
33
- refreshing = cloneFromProps->refreshing;
33
+ refreshing = cloneFromProps->refreshing;
34
+ onRefresh = cloneFromProps->onRefresh;
34
35
  }
35
36
  }
36
37
 
@@ -56,21 +57,25 @@ struct AndroidSwipeRefreshLayoutProps : winrt::implements<AndroidSwipeRefreshLay
56
57
  REACT_FIELD(refreshing)
57
58
  bool refreshing{};
58
59
 
60
+ // These fields can be used to determine if JS has registered for this event
61
+ REACT_FIELD(onRefresh)
62
+ bool onRefresh{false};
63
+
59
64
  const winrt::Microsoft::ReactNative::ViewProps ViewProps;
60
65
  };
61
66
 
62
- REACT_STRUCT(AndroidSwipeRefreshLayout_OnRefresh)
63
- struct AndroidSwipeRefreshLayout_OnRefresh {
67
+ REACT_STRUCT(AndroidSwipeRefreshLayoutSpec_onRefresh)
68
+ struct AndroidSwipeRefreshLayoutSpec_onRefresh {
64
69
  };
65
70
 
66
71
  struct AndroidSwipeRefreshLayoutEventEmitter {
67
72
  AndroidSwipeRefreshLayoutEventEmitter(const winrt::Microsoft::ReactNative::EventEmitter &eventEmitter)
68
73
  : m_eventEmitter(eventEmitter) {}
69
74
 
70
- using OnRefresh = AndroidSwipeRefreshLayout_OnRefresh;
75
+ using OnRefresh = AndroidSwipeRefreshLayoutSpec_onRefresh;
71
76
 
72
- void onRefresh(OnRefresh &value) const {
73
- m_eventEmitter.DispatchEvent(L"refresh", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
77
+ void onRefresh(OnRefresh &&value) const {
78
+ m_eventEmitter.DispatchEvent(L"refresh", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
74
79
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
75
80
  });
76
81
  }
@@ -33,7 +33,8 @@ struct AndroidSwitchProps : winrt::implements<AndroidSwitchProps, winrt::Microso
33
33
  value = cloneFromProps->value;
34
34
  on = cloneFromProps->on;
35
35
  thumbTintColor = cloneFromProps->thumbTintColor;
36
- trackTintColor = cloneFromProps->trackTintColor;
36
+ trackTintColor = cloneFromProps->trackTintColor;
37
+ onChange = cloneFromProps->onChange;
37
38
  }
38
39
  }
39
40
 
@@ -68,11 +69,15 @@ struct AndroidSwitchProps : winrt::implements<AndroidSwitchProps, winrt::Microso
68
69
  REACT_FIELD(trackTintColor)
69
70
  winrt::Microsoft::ReactNative::Color trackTintColor{nullptr};
70
71
 
72
+ // These fields can be used to determine if JS has registered for this event
73
+ REACT_FIELD(onChange)
74
+ bool onChange{false};
75
+
71
76
  const winrt::Microsoft::ReactNative::ViewProps ViewProps;
72
77
  };
73
78
 
74
- REACT_STRUCT(AndroidSwitch_OnChange)
75
- struct AndroidSwitch_OnChange {
79
+ REACT_STRUCT(AndroidSwitchSpec_onChange)
80
+ struct AndroidSwitchSpec_onChange {
76
81
  REACT_FIELD(value)
77
82
  bool value{};
78
83
 
@@ -84,10 +89,10 @@ struct AndroidSwitchEventEmitter {
84
89
  AndroidSwitchEventEmitter(const winrt::Microsoft::ReactNative::EventEmitter &eventEmitter)
85
90
  : m_eventEmitter(eventEmitter) {}
86
91
 
87
- using OnChange = AndroidSwitch_OnChange;
92
+ using OnChange = AndroidSwitchSpec_onChange;
88
93
 
89
- void onChange(OnChange &value) const {
90
- m_eventEmitter.DispatchEvent(L"change", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
94
+ void onChange(OnChange &&value) const {
95
+ m_eventEmitter.DispatchEvent(L"change", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
91
96
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
92
97
  });
93
98
  }
@@ -25,6 +25,7 @@ struct DebuggingOverlayProps : winrt::implements<DebuggingOverlayProps, winrt::M
25
25
  {
26
26
  if (cloneFrom) {
27
27
  auto cloneFromProps = cloneFrom.as<DebuggingOverlayProps>();
28
+
28
29
 
29
30
  }
30
31
  }
@@ -25,7 +25,8 @@ struct InputAccessoryProps : winrt::implements<InputAccessoryProps, winrt::Micro
25
25
  {
26
26
  if (cloneFrom) {
27
27
  auto cloneFromProps = cloneFrom.as<InputAccessoryProps>();
28
- backgroundColor = cloneFromProps->backgroundColor;
28
+ backgroundColor = cloneFromProps->backgroundColor;
29
+
29
30
  }
30
31
  }
31
32
 
@@ -36,7 +36,11 @@ struct ModalHostViewProps : winrt::implements<ModalHostViewProps, winrt::Microso
36
36
  allowSwipeDismissal = cloneFromProps->allowSwipeDismissal;
37
37
  supportedOrientations = cloneFromProps->supportedOrientations;
38
38
  identifier = cloneFromProps->identifier;
39
- title = cloneFromProps->title;
39
+ title = cloneFromProps->title;
40
+ onRequestClose = cloneFromProps->onRequestClose;
41
+ onShow = cloneFromProps->onShow;
42
+ onDismiss = cloneFromProps->onDismiss;
43
+ onOrientationChange = cloneFromProps->onOrientationChange;
40
44
  }
41
45
  }
42
46
 
@@ -80,56 +84,69 @@ struct ModalHostViewProps : winrt::implements<ModalHostViewProps, winrt::Microso
80
84
  REACT_FIELD(title)
81
85
  std::optional<std::string> title;
82
86
 
87
+ // These fields can be used to determine if JS has registered for this event
88
+ REACT_FIELD(onRequestClose)
89
+ bool onRequestClose{false};
90
+
91
+ REACT_FIELD(onShow)
92
+ bool onShow{false};
93
+
94
+ REACT_FIELD(onDismiss)
95
+ bool onDismiss{false};
96
+
97
+ REACT_FIELD(onOrientationChange)
98
+ bool onOrientationChange{false};
99
+
83
100
  const winrt::Microsoft::ReactNative::ViewProps ViewProps;
84
101
  };
85
102
 
86
- REACT_STRUCT(ModalHostView_OnRequestClose)
87
- struct ModalHostView_OnRequestClose {
103
+ REACT_STRUCT(ModalHostViewSpec_onOrientationChange)
104
+ struct ModalHostViewSpec_onOrientationChange {
105
+ REACT_FIELD(orientation)
106
+ std::string orientation;
88
107
  };
89
108
 
90
- REACT_STRUCT(ModalHostView_OnShow)
91
- struct ModalHostView_OnShow {
109
+ REACT_STRUCT(ModalHostViewSpec_onDismiss)
110
+ struct ModalHostViewSpec_onDismiss {
92
111
  };
93
112
 
94
- REACT_STRUCT(ModalHostView_OnDismiss)
95
- struct ModalHostView_OnDismiss {
113
+ REACT_STRUCT(ModalHostViewSpec_onShow)
114
+ struct ModalHostViewSpec_onShow {
96
115
  };
97
116
 
98
- REACT_STRUCT(ModalHostView_OnOrientationChange)
99
- struct ModalHostView_OnOrientationChange {
100
- REACT_FIELD(orientation)
101
- std::string orientation;
117
+ REACT_STRUCT(ModalHostViewSpec_onRequestClose)
118
+ struct ModalHostViewSpec_onRequestClose {
102
119
  };
103
120
 
104
121
  struct ModalHostViewEventEmitter {
105
122
  ModalHostViewEventEmitter(const winrt::Microsoft::ReactNative::EventEmitter &eventEmitter)
106
123
  : m_eventEmitter(eventEmitter) {}
107
124
 
108
- using OnRequestClose = ModalHostView_OnRequestClose;
109
- using OnShow = ModalHostView_OnShow;
110
- using OnDismiss = ModalHostView_OnDismiss;
111
- using OnOrientationChange = ModalHostView_OnOrientationChange;
125
+ using OnRequestClose = ModalHostViewSpec_onRequestClose;
126
+ using OnShow = ModalHostViewSpec_onShow;
127
+ using OnDismiss = ModalHostViewSpec_onDismiss;
128
+ using OnOrientationChange = ModalHostViewSpec_onOrientationChange;
112
129
 
113
- void onRequestClose(OnRequestClose &value) const {
114
- m_eventEmitter.DispatchEvent(L"requestClose", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
130
+ void onRequestClose(OnRequestClose &&value) const {
131
+ m_eventEmitter.DispatchEvent(L"requestClose", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
115
132
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
116
133
  });
117
134
  }
118
135
 
119
- void onShow(OnShow &value) const {
120
- m_eventEmitter.DispatchEvent(L"show", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
136
+ void onShow(OnShow &&value) const {
137
+ m_eventEmitter.DispatchEvent(L"show", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
121
138
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
122
139
  });
123
140
  }
124
141
 
125
- void onDismiss(OnDismiss &value) const {
126
- m_eventEmitter.DispatchEvent(L"dismiss", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
142
+ void onDismiss(OnDismiss &&value) const {
143
+ m_eventEmitter.DispatchEvent(L"dismiss", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
127
144
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
128
145
  });
129
146
  }
130
147
 
131
- void onOrientationChange(OnOrientationChange &value) const {
132
- m_eventEmitter.DispatchEvent(L"orientationChange", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
148
+ void onOrientationChange(OnOrientationChange &&value) const {
149
+ m_eventEmitter.DispatchEvent(L"orientationChange", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
133
150
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
134
151
  });
135
152
  }
@@ -20,7 +20,8 @@ VirtualViewExperimentalProps::VirtualViewExperimentalProps(
20
20
  const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
21
21
 
22
22
  initialHidden(convertRawProp(context, rawProps, "initialHidden", sourceProps.initialHidden, {false})),
23
- renderState(convertRawProp(context, rawProps, "renderState", sourceProps.renderState, {0})) {}
23
+ renderState(convertRawProp(context, rawProps, "renderState", sourceProps.renderState, {0})),
24
+ removeClippedSubviews(convertRawProp(context, rawProps, "removeClippedSubviews", sourceProps.removeClippedSubviews, {false})) {}
24
25
 
25
26
  #ifdef RN_SERIALIZABLE_STATE
26
27
  ComponentName VirtualViewExperimentalProps::getDiffPropsImplementationTarget() const {
@@ -45,6 +46,10 @@ folly::dynamic VirtualViewExperimentalProps::getDiffProps(
45
46
  if (renderState != oldProps->renderState) {
46
47
  result["renderState"] = renderState;
47
48
  }
49
+
50
+ if (removeClippedSubviews != oldProps->removeClippedSubviews) {
51
+ result["removeClippedSubviews"] = removeClippedSubviews;
52
+ }
48
53
  return result;
49
54
  }
50
55
  #endif
@@ -27,6 +27,7 @@ class VirtualViewExperimentalProps final : public ViewProps {
27
27
 
28
28
  bool initialHidden{false};
29
29
  int renderState{0};
30
+ bool removeClippedSubviews{false};
30
31
 
31
32
  #ifdef RN_SERIALIZABLE_STATE
32
33
  ComponentName getDiffPropsImplementationTarget() const override;
@@ -29,7 +29,8 @@ struct PullToRefreshViewProps : winrt::implements<PullToRefreshViewProps, winrt:
29
29
  titleColor = cloneFromProps->titleColor;
30
30
  title = cloneFromProps->title;
31
31
  progressViewOffset = cloneFromProps->progressViewOffset;
32
- refreshing = cloneFromProps->refreshing;
32
+ refreshing = cloneFromProps->refreshing;
33
+ onRefresh = cloneFromProps->onRefresh;
33
34
  }
34
35
  }
35
36
 
@@ -52,21 +53,25 @@ struct PullToRefreshViewProps : winrt::implements<PullToRefreshViewProps, winrt:
52
53
  REACT_FIELD(refreshing)
53
54
  bool refreshing{};
54
55
 
56
+ // These fields can be used to determine if JS has registered for this event
57
+ REACT_FIELD(onRefresh)
58
+ bool onRefresh{false};
59
+
55
60
  const winrt::Microsoft::ReactNative::ViewProps ViewProps;
56
61
  };
57
62
 
58
- REACT_STRUCT(PullToRefreshView_OnRefresh)
59
- struct PullToRefreshView_OnRefresh {
63
+ REACT_STRUCT(PullToRefreshViewSpec_onRefresh)
64
+ struct PullToRefreshViewSpec_onRefresh {
60
65
  };
61
66
 
62
67
  struct PullToRefreshViewEventEmitter {
63
68
  PullToRefreshViewEventEmitter(const winrt::Microsoft::ReactNative::EventEmitter &eventEmitter)
64
69
  : m_eventEmitter(eventEmitter) {}
65
70
 
66
- using OnRefresh = PullToRefreshView_OnRefresh;
71
+ using OnRefresh = PullToRefreshViewSpec_onRefresh;
67
72
 
68
- void onRefresh(OnRefresh &value) const {
69
- m_eventEmitter.DispatchEvent(L"refresh", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
73
+ void onRefresh(OnRefresh &&value) const {
74
+ m_eventEmitter.DispatchEvent(L"refresh", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
70
75
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
71
76
  });
72
77
  }
@@ -25,6 +25,7 @@ struct SafeAreaViewProps : winrt::implements<SafeAreaViewProps, winrt::Microsoft
25
25
  {
26
26
  if (cloneFrom) {
27
27
  auto cloneFromProps = cloneFrom.as<SafeAreaViewProps>();
28
+
28
29
 
29
30
  }
30
31
  }
@@ -32,7 +32,8 @@ struct SwitchProps : winrt::implements<SwitchProps, winrt::Microsoft::ReactNativ
32
32
  thumbTintColor = cloneFromProps->thumbTintColor;
33
33
  thumbColor = cloneFromProps->thumbColor;
34
34
  trackColorForFalse = cloneFromProps->trackColorForFalse;
35
- trackColorForTrue = cloneFromProps->trackColorForTrue;
35
+ trackColorForTrue = cloneFromProps->trackColorForTrue;
36
+ onChange = cloneFromProps->onChange;
36
37
  }
37
38
  }
38
39
 
@@ -64,11 +65,15 @@ struct SwitchProps : winrt::implements<SwitchProps, winrt::Microsoft::ReactNativ
64
65
  REACT_FIELD(trackColorForTrue)
65
66
  winrt::Microsoft::ReactNative::Color trackColorForTrue{nullptr};
66
67
 
68
+ // These fields can be used to determine if JS has registered for this event
69
+ REACT_FIELD(onChange)
70
+ bool onChange{false};
71
+
67
72
  const winrt::Microsoft::ReactNative::ViewProps ViewProps;
68
73
  };
69
74
 
70
- REACT_STRUCT(Switch_OnChange)
71
- struct Switch_OnChange {
75
+ REACT_STRUCT(SwitchSpec_onChange)
76
+ struct SwitchSpec_onChange {
72
77
  REACT_FIELD(value)
73
78
  bool value{};
74
79
 
@@ -80,10 +85,10 @@ struct SwitchEventEmitter {
80
85
  SwitchEventEmitter(const winrt::Microsoft::ReactNative::EventEmitter &eventEmitter)
81
86
  : m_eventEmitter(eventEmitter) {}
82
87
 
83
- using OnChange = Switch_OnChange;
88
+ using OnChange = SwitchSpec_onChange;
84
89
 
85
- void onChange(OnChange &value) const {
86
- m_eventEmitter.DispatchEvent(L"change", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
90
+ void onChange(OnChange &&value) const {
91
+ m_eventEmitter.DispatchEvent(L"change", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
87
92
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
88
93
  });
89
94
  }
@@ -25,7 +25,8 @@ struct UnimplementedNativeViewProps : winrt::implements<UnimplementedNativeViewP
25
25
  {
26
26
  if (cloneFrom) {
27
27
  auto cloneFromProps = cloneFrom.as<UnimplementedNativeViewProps>();
28
- name = cloneFromProps->name;
28
+ name = cloneFromProps->name;
29
+
29
30
  }
30
31
  }
31
32
 
@@ -27,7 +27,8 @@ struct VirtualViewProps : winrt::implements<VirtualViewProps, winrt::Microsoft::
27
27
  auto cloneFromProps = cloneFrom.as<VirtualViewProps>();
28
28
  initialHidden = cloneFromProps->initialHidden;
29
29
  removeClippedSubviews = cloneFromProps->removeClippedSubviews;
30
- renderState = cloneFromProps->renderState;
30
+ renderState = cloneFromProps->renderState;
31
+ onModeChange = cloneFromProps->onModeChange;
31
32
  }
32
33
  }
33
34
 
@@ -44,11 +45,45 @@ struct VirtualViewProps : winrt::implements<VirtualViewProps, winrt::Microsoft::
44
45
  REACT_FIELD(renderState)
45
46
  int32_t renderState{};
46
47
 
48
+ // These fields can be used to determine if JS has registered for this event
49
+ REACT_FIELD(onModeChange)
50
+ bool onModeChange{false};
51
+
47
52
  const winrt::Microsoft::ReactNative::ViewProps ViewProps;
48
53
  };
49
54
 
50
- REACT_STRUCT(VirtualView_OnModeChange)
51
- struct VirtualView_OnModeChange {
55
+ REACT_STRUCT(VirtualViewSpec_onModeChange3)
56
+ struct VirtualViewSpec_onModeChange3 {
57
+ REACT_FIELD(x)
58
+ double x{};
59
+
60
+ REACT_FIELD(y)
61
+ double y{};
62
+
63
+ REACT_FIELD(width)
64
+ double width{};
65
+
66
+ REACT_FIELD(height)
67
+ double height{};
68
+ };
69
+
70
+ REACT_STRUCT(VirtualViewSpec_onModeChange2)
71
+ struct VirtualViewSpec_onModeChange2 {
72
+ REACT_FIELD(x)
73
+ double x{};
74
+
75
+ REACT_FIELD(y)
76
+ double y{};
77
+
78
+ REACT_FIELD(width)
79
+ double width{};
80
+
81
+ REACT_FIELD(height)
82
+ double height{};
83
+ };
84
+
85
+ REACT_STRUCT(VirtualViewSpec_onModeChange)
86
+ struct VirtualViewSpec_onModeChange {
52
87
  REACT_FIELD(mode)
53
88
  int32_t mode{};
54
89
 
@@ -63,12 +98,10 @@ struct VirtualViewEventEmitter {
63
98
  VirtualViewEventEmitter(const winrt::Microsoft::ReactNative::EventEmitter &eventEmitter)
64
99
  : m_eventEmitter(eventEmitter) {}
65
100
 
66
- using OnModeChange = VirtualView_OnModeChange;
67
- using OnModeChange2 = VirtualView_OnModeChange2;
68
- using OnModeChange3 = VirtualView_OnModeChange3;
101
+ using OnModeChange = VirtualViewSpec_onModeChange;
69
102
 
70
- void onModeChange(OnModeChange &value) const {
71
- m_eventEmitter.DispatchEvent(L"modeChange", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
103
+ void onModeChange(OnModeChange &&value) const {
104
+ m_eventEmitter.DispatchEvent(L"modeChange", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
72
105
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
73
106
  });
74
107
  }
@@ -26,7 +26,9 @@ struct VirtualViewExperimentalProps : winrt::implements<VirtualViewExperimentalP
26
26
  if (cloneFrom) {
27
27
  auto cloneFromProps = cloneFrom.as<VirtualViewExperimentalProps>();
28
28
  initialHidden = cloneFromProps->initialHidden;
29
- renderState = cloneFromProps->renderState;
29
+ renderState = cloneFromProps->renderState;
30
+ removeClippedSubviews = cloneFromProps->removeClippedSubviews;
31
+ onModeChange = cloneFromProps->onModeChange;
30
32
  }
31
33
  }
32
34
 
@@ -40,11 +42,48 @@ struct VirtualViewExperimentalProps : winrt::implements<VirtualViewExperimentalP
40
42
  REACT_FIELD(renderState)
41
43
  int32_t renderState{};
42
44
 
45
+ REACT_FIELD(removeClippedSubviews)
46
+ std::optional<bool> removeClippedSubviews{};
47
+
48
+ // These fields can be used to determine if JS has registered for this event
49
+ REACT_FIELD(onModeChange)
50
+ bool onModeChange{false};
51
+
43
52
  const winrt::Microsoft::ReactNative::ViewProps ViewProps;
44
53
  };
45
54
 
46
- REACT_STRUCT(VirtualViewExperimental_OnModeChange)
47
- struct VirtualViewExperimental_OnModeChange {
55
+ REACT_STRUCT(VirtualViewExperimentalSpec_onModeChange3)
56
+ struct VirtualViewExperimentalSpec_onModeChange3 {
57
+ REACT_FIELD(x)
58
+ double x{};
59
+
60
+ REACT_FIELD(y)
61
+ double y{};
62
+
63
+ REACT_FIELD(width)
64
+ double width{};
65
+
66
+ REACT_FIELD(height)
67
+ double height{};
68
+ };
69
+
70
+ REACT_STRUCT(VirtualViewExperimentalSpec_onModeChange2)
71
+ struct VirtualViewExperimentalSpec_onModeChange2 {
72
+ REACT_FIELD(x)
73
+ double x{};
74
+
75
+ REACT_FIELD(y)
76
+ double y{};
77
+
78
+ REACT_FIELD(width)
79
+ double width{};
80
+
81
+ REACT_FIELD(height)
82
+ double height{};
83
+ };
84
+
85
+ REACT_STRUCT(VirtualViewExperimentalSpec_onModeChange)
86
+ struct VirtualViewExperimentalSpec_onModeChange {
48
87
  REACT_FIELD(mode)
49
88
  int32_t mode{};
50
89
 
@@ -59,12 +98,10 @@ struct VirtualViewExperimentalEventEmitter {
59
98
  VirtualViewExperimentalEventEmitter(const winrt::Microsoft::ReactNative::EventEmitter &eventEmitter)
60
99
  : m_eventEmitter(eventEmitter) {}
61
100
 
62
- using OnModeChange = VirtualViewExperimental_OnModeChange;
63
- using OnModeChange2 = VirtualViewExperimental_OnModeChange2;
64
- using OnModeChange3 = VirtualViewExperimental_OnModeChange3;
101
+ using OnModeChange = VirtualViewExperimentalSpec_onModeChange;
65
102
 
66
- void onModeChange(OnModeChange &value) const {
67
- m_eventEmitter.DispatchEvent(L"modeChange", [value](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
103
+ void onModeChange(OnModeChange &&value) const {
104
+ m_eventEmitter.DispatchEvent(L"modeChange", [value = std::move(value)](const winrt::Microsoft::ReactNative::IJSValueWriter writer) {
68
105
  winrt::Microsoft::ReactNative::WriteValue(writer, value);
69
106
  });
70
107
  }