react-native-windows 0.83.0-preview.3 → 0.84.0-preview.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +2 -2
- package/Folly/Folly.vcxproj +2 -0
- package/Libraries/Animated/AnimatedEvent.js +2 -2
- package/Libraries/Animated/animations/Animation.js +1 -3
- package/Libraries/Animated/createAnimatedComponent.js +8 -5
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
- package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
- package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
- package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +24 -22
- package/Libraries/Blob/URL.js +34 -3
- package/Libraries/Blob/URLSearchParams.js +1 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +9 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +6 -1
- package/Libraries/Components/Button.js +2 -5
- package/Libraries/Components/Button.windows.js +2 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
- package/Libraries/Components/Keyboard/Keyboard.js +2 -2
- package/Libraries/Components/Pressable/Pressable.js +8 -8
- package/Libraries/Components/Pressable/Pressable.windows.js +14 -13
- package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
- package/Libraries/Components/TextInput/TextInput.flow.windows.js +19 -18
- package/Libraries/Components/TextInput/TextInput.js +33 -34
- package/Libraries/Components/TextInput/TextInput.windows.js +40 -39
- package/Libraries/Components/Touchable/PooledClass.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +3 -3
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +3 -3
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -9
- package/Libraries/Components/View/ViewPropTypes.js +16 -6
- package/Libraries/Components/View/ViewPropTypes.windows.js +21 -11
- package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
- package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +6 -3
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +1 -1
- package/Libraries/Core/setUpReactDevTools.js +6 -23
- package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
- package/Libraries/Image/Image.android.js +2 -2
- package/Libraries/Image/Image.ios.js +2 -2
- package/Libraries/Image/Image.windows.js +2 -2
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Interaction/InteractionManager.js +3 -3
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +31 -4
- package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
- package/Libraries/LogBox/LogBox.js +7 -7
- package/Libraries/Modal/Modal.windows.js +1 -7
- package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
- package/Libraries/NativeComponent/ViewConfigIgnore.windows.js +1 -1
- package/Libraries/Network/RCTNetworking.android.js +3 -3
- package/Libraries/Network/RCTNetworking.ios.js +2 -2
- package/Libraries/Network/RCTNetworking.js.flow +2 -2
- package/Libraries/Network/RCTNetworking.windows.js +2 -2
- package/Libraries/Pressability/Pressability.js +9 -9
- package/Libraries/Pressability/Pressability.windows.js +17 -16
- package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/PaperUIManager.js +1 -1
- package/Libraries/ReactNative/PaperUIManager.windows.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
- package/Libraries/Renderer/shims/ReactFabric.js +3 -1
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
- package/Libraries/Renderer/shims/ReactNative.js +2 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
- package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
- package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
- package/Libraries/StyleSheet/processFilter.js +1 -1
- package/Libraries/Text/Text.js +46 -6
- package/Libraries/Text/Text.windows.js +46 -6
- package/Libraries/Text/TextNativeComponent.js +1 -1
- package/Libraries/Text/TextProps.js +7 -7
- package/Libraries/Text/TextProps.windows.js +7 -7
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +31 -0
- package/Libraries/Types/CoreEventTypes.windows.js +31 -13
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +2 -2
- package/Libraries/Utilities/DevLoadingView.js +8 -1
- package/Libraries/Utilities/DevSettings.js +3 -3
- package/Libraries/Utilities/HMRClient.js +4 -3
- package/Libraries/Utilities/RCTLog.js +3 -3
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +1 -1
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +7 -7
- package/Libraries/Utilities/useRefEffect.js +1 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
- package/Libraries/promiseRejectionTrackingOptions.js +8 -8
- package/Libraries/vendor/core/ErrorUtils.js +10 -10
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +5 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.h +1 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +58 -20
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +5 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +302 -67
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +19 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +23 -12
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +4 -0
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +0 -2
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +98 -44
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +4 -2
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +2 -3
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +2 -2
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +3 -1
- package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +0 -1
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +2 -0
- package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.cpp +3 -3
- package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.h +3 -2
- package/Microsoft.ReactNative/Modules/Timing.h +2 -1
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +6 -0
- package/Microsoft.ReactNative/ViewProps.idl +9 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +12 -2
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +1 -1
- package/ReactCommon/ReactCommon.vcxproj +7 -1
- package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +5 -5
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +12 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/attributedstring/TextAttributes.cpp +291 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +1 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/propsConversions.h +199 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +6 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +17 -10
- package/Scripts/creaternwapp.cmd +8 -1
- package/Scripts/creaternwlib.cmd +21 -2
- package/Shared/DevSettings.h +0 -3
- package/Shared/Modules/WebSocketModule.cpp +0 -1
- package/Shared/Modules/WebSocketModule.h +62 -3
- package/Shared/OInstance.cpp +5 -0
- package/Shared/Shared.vcxitems +4 -6
- package/Shared/Shared.vcxitems.filters +218 -709
- package/codegen/NativeAccessibilityManagerSpec.g.h +2 -0
- package/codegen/NativeAnimatedModuleSpec.g.h +21 -15
- package/codegen/NativeDevLoadingViewSpec.g.h +3 -3
- package/codegen/NativeIntentAndroidSpec.g.h +16 -3
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +209 -191
- package/codegen/react/components/rnwcore/EventEmitters.h +1 -0
- package/codegen/react/components/rnwcore/Props.h +14 -0
- package/codegen/rnwcoreJSI.h +246 -211
- package/index.js +3 -0
- package/index.windows.js +3 -0
- package/jest/mock.js +2 -2
- package/jest/mockComponent.js +1 -1
- package/jest/setup.js +1 -1
- package/package.json +22 -21
- package/src/private/animated/NativeAnimatedHelper.js +130 -125
- package/src/private/animated/NativeAnimatedValidation.js +7 -4
- package/src/private/animated/createAnimatedPropsHook.js +13 -5
- package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
- package/src/private/components/virtualview/VirtualView.js +16 -9
- package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
- package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
- package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
- package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
- package/src/private/webapis/dom/events/CustomEvent.js +3 -3
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
- package/src/private/webapis/html/events/MessageEvent.js +3 -3
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
- package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
- package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
- package/src/private/webapis/performance/Performance.js +1 -1
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
- package/src/private/webapis/structuredClone/structuredClone.js +3 -3
- package/src/types/globals.d.ts +30 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/image/conversions.h +0 -178
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h +0 -183
- package/Shared/Modules/WebSocketTurboModule.h +0 -71
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
|
@@ -12,8 +12,15 @@ import typeof {enable} from 'promise/setimmediate/rejection-tracking';
|
|
|
12
12
|
|
|
13
13
|
import ExceptionsManager from './Core/ExceptionsManager';
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
const rejectionTrackingOptions: NonNullable<Parameters<enable>[0]> = {
|
|
16
16
|
allRejections: true,
|
|
17
|
+
onHandled: id => {
|
|
18
|
+
const warning =
|
|
19
|
+
`Promise rejection handled (id: ${id})\n` +
|
|
20
|
+
'This means you can ignore any previous messages of the form ' +
|
|
21
|
+
`"Uncaught (in promise, id: ${id})"`;
|
|
22
|
+
console.warn(warning);
|
|
23
|
+
},
|
|
17
24
|
onUnhandled: (id, rejection) => {
|
|
18
25
|
let message: string;
|
|
19
26
|
|
|
@@ -46,13 +53,6 @@ let rejectionTrackingOptions: $NonMaybeType<Parameters<enable>[0]> = {
|
|
|
46
53
|
false /* isFatal */,
|
|
47
54
|
);
|
|
48
55
|
},
|
|
49
|
-
onHandled: id => {
|
|
50
|
-
const warning =
|
|
51
|
-
`Promise rejection handled (id: ${id})\n` +
|
|
52
|
-
'This means you can ignore any previous messages of the form ' +
|
|
53
|
-
`"Uncaught (in promise, id: ${id})"`;
|
|
54
|
-
console.warn(warning);
|
|
55
|
-
},
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
export default rejectionTrackingOptions;
|
|
@@ -9,30 +9,30 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
// From @react-native/js-polyfills
|
|
12
|
-
type ErrorHandler = (error:
|
|
13
|
-
type Fn<Args: $ReadOnlyArray<
|
|
12
|
+
type ErrorHandler = (error: unknown, isFatal: boolean) => void;
|
|
13
|
+
type Fn<Args: $ReadOnlyArray<unknown>, Return> = (...Args) => Return;
|
|
14
14
|
export type ErrorUtils = {
|
|
15
|
-
applyWithGuard<TArgs: $ReadOnlyArray<
|
|
15
|
+
applyWithGuard<TArgs: $ReadOnlyArray<unknown>, TOut>(
|
|
16
16
|
fun: Fn<TArgs, TOut>,
|
|
17
|
-
context?:
|
|
17
|
+
context?: unknown,
|
|
18
18
|
args?: ?TArgs,
|
|
19
19
|
unused_onError?: null,
|
|
20
20
|
unused_name?: ?string,
|
|
21
21
|
): ?TOut,
|
|
22
|
-
applyWithGuardIfNeeded<TArgs: $ReadOnlyArray<
|
|
22
|
+
applyWithGuardIfNeeded<TArgs: $ReadOnlyArray<unknown>, TOut>(
|
|
23
23
|
fun: Fn<TArgs, TOut>,
|
|
24
|
-
context?:
|
|
24
|
+
context?: unknown,
|
|
25
25
|
args?: ?TArgs,
|
|
26
26
|
): ?TOut,
|
|
27
27
|
getGlobalHandler(): ErrorHandler,
|
|
28
|
-
guard<TArgs: $ReadOnlyArray<
|
|
28
|
+
guard<TArgs: $ReadOnlyArray<unknown>, TOut>(
|
|
29
29
|
fun: Fn<TArgs, TOut>,
|
|
30
30
|
name?: ?string,
|
|
31
|
-
context?:
|
|
31
|
+
context?: unknown,
|
|
32
32
|
): ?(...TArgs) => ?TOut,
|
|
33
33
|
inGuard(): boolean,
|
|
34
|
-
reportError(error:
|
|
35
|
-
reportFatalError(error:
|
|
34
|
+
reportError(error: unknown): void,
|
|
35
|
+
reportFatalError(error: unknown): void,
|
|
36
36
|
setGlobalHandler(fun: ErrorHandler): void,
|
|
37
37
|
};
|
|
38
38
|
|
|
@@ -20,8 +20,8 @@ export interface IEventEmitter<
|
|
|
20
20
|
> {
|
|
21
21
|
addListener<TEvent: $Keys<TEventToArgsMap>>(
|
|
22
22
|
eventType: TEvent,
|
|
23
|
-
listener: (...args: TEventToArgsMap[TEvent]) =>
|
|
24
|
-
context?:
|
|
23
|
+
listener: (...args: TEventToArgsMap[TEvent]) => unknown,
|
|
24
|
+
context?: unknown,
|
|
25
25
|
): EventSubscription;
|
|
26
26
|
|
|
27
27
|
emit<TEvent: $Keys<TEventToArgsMap>>(
|
|
@@ -35,8 +35,8 @@ export interface IEventEmitter<
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
interface Registration<TArgs> {
|
|
38
|
-
+context:
|
|
39
|
-
+listener: (...args: TArgs) =>
|
|
38
|
+
+context: unknown;
|
|
39
|
+
+listener: (...args: TArgs) => unknown;
|
|
40
40
|
+remove: () => void;
|
|
41
41
|
}
|
|
42
42
|
|
|
@@ -85,8 +85,8 @@ export default class EventEmitter<
|
|
|
85
85
|
*/
|
|
86
86
|
addListener<TEvent: $Keys<TEventToArgsMap>>(
|
|
87
87
|
eventType: TEvent,
|
|
88
|
-
listener: (...args: TEventToArgsMap[TEvent]) =>
|
|
89
|
-
context:
|
|
88
|
+
listener: (...args: TEventToArgsMap[TEvent]) => unknown,
|
|
89
|
+
context: unknown,
|
|
90
90
|
): EventSubscription {
|
|
91
91
|
if (typeof listener !== 'function') {
|
|
92
92
|
throw new TypeError(
|
|
@@ -226,6 +226,11 @@ winrt::hstring ViewProps::AccessibilityLabel() noexcept {
|
|
|
226
226
|
return m_viewProps ? winrt::to_hstring(m_viewProps->accessibilityLabel) : winrt::hstring{};
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
+
winrt::Microsoft::ReactNative::Overflow ViewProps::Overflow() noexcept {
|
|
230
|
+
return m_viewProps ? static_cast<winrt::Microsoft::ReactNative::Overflow>(m_viewProps->yogaStyle.overflow())
|
|
231
|
+
: winrt::Microsoft::ReactNative::Overflow::Visible;
|
|
232
|
+
}
|
|
233
|
+
|
|
229
234
|
ImageProps::ImageProps(facebook::react::SharedViewProps props) noexcept : Super(props) {}
|
|
230
235
|
|
|
231
236
|
winrt::Windows::Foundation::Collections::IVectorView<winrt::Microsoft::ReactNative::ImageSource>
|
|
@@ -99,6 +99,7 @@ struct ViewProps : ViewPropsT<ViewProps> {
|
|
|
99
99
|
winrt::Microsoft::ReactNative::Color BackgroundColor() noexcept;
|
|
100
100
|
winrt::hstring TestId() noexcept;
|
|
101
101
|
winrt::hstring AccessibilityLabel() noexcept;
|
|
102
|
+
winrt::Microsoft::ReactNative::Overflow Overflow() noexcept;
|
|
102
103
|
|
|
103
104
|
protected:
|
|
104
105
|
facebook::react::SharedViewProps m_props;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
#include "pch.h"
|
|
3
3
|
#include "CompositionContextHelper.h"
|
|
4
4
|
#include <algorithm>
|
|
5
|
+
#include <cassert>
|
|
6
|
+
#include <exception>
|
|
7
|
+
#include <vector>
|
|
5
8
|
#if __has_include("Composition.Experimental.SystemCompositionContextHelper.g.cpp")
|
|
6
9
|
#include "Composition.Experimental.SystemCompositionContextHelper.g.cpp"
|
|
7
10
|
#endif
|
|
@@ -431,30 +434,43 @@ struct CompVisualImpl {
|
|
|
431
434
|
void InsertAt(
|
|
432
435
|
const winrt::Microsoft::ReactNative::Composition::Experimental::IVisual &visual,
|
|
433
436
|
uint32_t index) noexcept {
|
|
437
|
+
if (index > m_childrenCache.size()) {
|
|
438
|
+
std::terminate();
|
|
439
|
+
}
|
|
434
440
|
auto containerChildren = InnerVisual().as<typename TTypeRedirects::ContainerVisual>().Children();
|
|
435
441
|
auto compVisual = TTypeRedirects::CompositionContextHelper::InnerVisual(visual);
|
|
436
442
|
if (index == 0) {
|
|
437
443
|
containerChildren.InsertAtBottom(compVisual);
|
|
438
|
-
|
|
444
|
+
} else {
|
|
445
|
+
auto insertAfter = containerChildren.First();
|
|
446
|
+
for (uint32_t i = 1; i < index; i++)
|
|
447
|
+
insertAfter.MoveNext();
|
|
448
|
+
containerChildren.InsertAbove(compVisual, insertAfter.Current());
|
|
449
|
+
}
|
|
450
|
+
if (index >= m_childrenCache.size()) {
|
|
451
|
+
m_childrenCache.push_back(visual);
|
|
452
|
+
} else {
|
|
453
|
+
m_childrenCache.insert(m_childrenCache.begin() + index, visual);
|
|
439
454
|
}
|
|
440
|
-
auto insertAfter = containerChildren.First();
|
|
441
|
-
for (uint32_t i = 1; i < index; i++)
|
|
442
|
-
insertAfter.MoveNext();
|
|
443
|
-
containerChildren.InsertAbove(compVisual, insertAfter.Current());
|
|
444
455
|
}
|
|
445
456
|
|
|
446
457
|
void Remove(const winrt::Microsoft::ReactNative::Composition::Experimental::IVisual &visual) noexcept {
|
|
447
458
|
auto compVisual = TTypeRedirects::CompositionContextHelper::InnerVisual(visual);
|
|
448
459
|
auto containerChildren = InnerVisual().as<typename TTypeRedirects::ContainerVisual>().Children();
|
|
449
460
|
containerChildren.Remove(compVisual);
|
|
461
|
+
auto it = std::find_if(
|
|
462
|
+
m_childrenCache.begin(), m_childrenCache.end(), [&visual](const auto &cached) { return cached == visual; });
|
|
463
|
+
if (it != m_childrenCache.end()) {
|
|
464
|
+
m_childrenCache.erase(it);
|
|
465
|
+
}
|
|
450
466
|
}
|
|
451
467
|
|
|
452
468
|
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual GetAt(uint32_t index) noexcept {
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
return
|
|
469
|
+
if (index < m_childrenCache.size()) {
|
|
470
|
+
return m_childrenCache[index];
|
|
471
|
+
}
|
|
472
|
+
assert(false && "GetAt called with out-of-range index");
|
|
473
|
+
return nullptr;
|
|
458
474
|
}
|
|
459
475
|
|
|
460
476
|
void SetClippingPath(ID2D1Geometry *clippingPath) noexcept {
|
|
@@ -534,6 +550,7 @@ struct CompVisualImpl {
|
|
|
534
550
|
|
|
535
551
|
protected:
|
|
536
552
|
TVisual m_visual;
|
|
553
|
+
std::vector<winrt::Microsoft::ReactNative::Composition::Experimental::IVisual> m_childrenCache;
|
|
537
554
|
};
|
|
538
555
|
|
|
539
556
|
template <typename TTypeRedirects>
|
|
@@ -848,30 +865,43 @@ struct CompScrollerVisual : winrt::implements<
|
|
|
848
865
|
void InsertAt(
|
|
849
866
|
const winrt::Microsoft::ReactNative::Composition::Experimental::IVisual &visual,
|
|
850
867
|
uint32_t index) noexcept {
|
|
868
|
+
if (index > m_childrenCache.size()) {
|
|
869
|
+
std::terminate();
|
|
870
|
+
}
|
|
851
871
|
auto containerChildren = m_contentVisual.Children();
|
|
852
872
|
auto compVisual = TTypeRedirects::CompositionContextHelper::InnerVisual(visual);
|
|
853
873
|
if (index == 0) {
|
|
854
874
|
containerChildren.InsertAtBottom(compVisual);
|
|
855
|
-
|
|
875
|
+
} else {
|
|
876
|
+
auto insertAfter = containerChildren.First();
|
|
877
|
+
for (uint32_t i = 1; i < index; i++)
|
|
878
|
+
insertAfter.MoveNext();
|
|
879
|
+
containerChildren.InsertAbove(compVisual, insertAfter.Current());
|
|
880
|
+
}
|
|
881
|
+
if (index >= m_childrenCache.size()) {
|
|
882
|
+
m_childrenCache.push_back(visual);
|
|
883
|
+
} else {
|
|
884
|
+
m_childrenCache.insert(m_childrenCache.begin() + index, visual);
|
|
856
885
|
}
|
|
857
|
-
auto insertAfter = containerChildren.First();
|
|
858
|
-
for (uint32_t i = 1; i < index; i++)
|
|
859
|
-
insertAfter.MoveNext();
|
|
860
|
-
containerChildren.InsertAbove(compVisual, insertAfter.Current());
|
|
861
886
|
}
|
|
862
887
|
|
|
863
888
|
void Remove(const winrt::Microsoft::ReactNative::Composition::Experimental::IVisual &visual) noexcept {
|
|
864
889
|
auto compVisual = TTypeRedirects::CompositionContextHelper::InnerVisual(visual);
|
|
865
890
|
auto containerChildren = m_contentVisual.Children();
|
|
866
891
|
containerChildren.Remove(compVisual);
|
|
892
|
+
auto it = std::find_if(
|
|
893
|
+
m_childrenCache.begin(), m_childrenCache.end(), [&visual](const auto &cached) { return cached == visual; });
|
|
894
|
+
if (it != m_childrenCache.end()) {
|
|
895
|
+
m_childrenCache.erase(it);
|
|
896
|
+
}
|
|
867
897
|
}
|
|
868
898
|
|
|
869
899
|
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual GetAt(uint32_t index) noexcept {
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
return
|
|
900
|
+
if (index < m_childrenCache.size()) {
|
|
901
|
+
return m_childrenCache[index];
|
|
902
|
+
}
|
|
903
|
+
assert(false && "GetAt called with out-of-range index");
|
|
904
|
+
return nullptr;
|
|
875
905
|
}
|
|
876
906
|
|
|
877
907
|
void Brush(const winrt::Microsoft::ReactNative::Composition::Experimental::IBrush &brush) noexcept {
|
|
@@ -1255,6 +1285,12 @@ struct CompScrollerVisual : winrt::implements<
|
|
|
1255
1285
|
std::sort(snapPositions.begin(), snapPositions.end());
|
|
1256
1286
|
snapPositions.erase(std::unique(snapPositions.begin(), snapPositions.end()), snapPositions.end());
|
|
1257
1287
|
|
|
1288
|
+
// Skip reconfiguration if snap points haven't changed
|
|
1289
|
+
if (snapPositions == m_previousSnapPositions) {
|
|
1290
|
+
return;
|
|
1291
|
+
}
|
|
1292
|
+
m_previousSnapPositions = snapPositions;
|
|
1293
|
+
|
|
1258
1294
|
std::vector<typename TTypeRedirects::InteractionTrackerInertiaRestingValue> restingValues;
|
|
1259
1295
|
|
|
1260
1296
|
for (size_t i = 0; i < snapPositions.size(); ++i) {
|
|
@@ -1384,6 +1420,7 @@ struct CompScrollerVisual : winrt::implements<
|
|
|
1384
1420
|
winrt::Microsoft::ReactNative::Composition::Experimental::SnapPointsAlignment m_snapToAlignment{
|
|
1385
1421
|
winrt::Microsoft::ReactNative::Composition::Experimental::SnapPointsAlignment::Near};
|
|
1386
1422
|
std::vector<float> m_snapToOffsets;
|
|
1423
|
+
std::vector<float> m_previousSnapPositions;
|
|
1387
1424
|
bool m_inertia{false};
|
|
1388
1425
|
bool m_custom{false};
|
|
1389
1426
|
bool m_interacting{false};
|
|
@@ -1410,6 +1447,7 @@ struct CompScrollerVisual : winrt::implements<
|
|
|
1410
1447
|
typename TTypeRedirects::SpriteVisual m_contentVisual{nullptr};
|
|
1411
1448
|
typename TTypeRedirects::InteractionTracker m_interactionTracker{nullptr};
|
|
1412
1449
|
typename TTypeRedirects::VisualInteractionSource m_visualInteractionSource{nullptr};
|
|
1450
|
+
std::vector<winrt::Microsoft::ReactNative::Composition::Experimental::IVisual> m_childrenCache;
|
|
1413
1451
|
};
|
|
1414
1452
|
using WindowsCompScrollerVisual = CompScrollerVisual<WindowsTypeRedirects>;
|
|
1415
1453
|
using MicrosoftCompScrollerVisual = CompScrollerVisual<MicrosoftTypeRedirects>;
|
|
@@ -1064,6 +1064,11 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::get_SelectionContainer(I
|
|
|
1064
1064
|
*pRetVal = nullptr;
|
|
1065
1065
|
|
|
1066
1066
|
auto selectionContainerView = GetSelectionContainer();
|
|
1067
|
+
// Per UIA spec, returning S_OK with *pRetVal == nullptr is correct when the element
|
|
1068
|
+
// is not contained within a selection container.
|
|
1069
|
+
if (!selectionContainerView)
|
|
1070
|
+
return S_OK;
|
|
1071
|
+
|
|
1067
1072
|
auto uiaProvider =
|
|
1068
1073
|
winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(selectionContainerView)
|
|
1069
1074
|
->EnsureUiaProvider();
|