react-native-windows 0.0.0-canary.685 → 0.0.0-canary.686
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 -1
- package/Libraries/Animated/Animated.js +1 -1
- package/Libraries/Animated/animations/Animation.js +5 -1
- package/Libraries/Animated/useAnimatedProps.js +5 -2
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +1 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +1 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -0
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +31 -7
- package/Libraries/Components/TextInput/TextInput.flow.js +33 -10
- package/Libraries/Components/TextInput/TextInput.js +46 -10
- package/Libraries/Components/TextInput/TextInput.windows.js +46 -10
- package/Libraries/Components/View/ViewPropTypes.js +3 -3
- package/Libraries/Components/View/ViewPropTypes.windows.js +3 -3
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Pressability/Pressability.js +8 -2
- package/Libraries/Pressability/Pressability.windows.js +8 -2
- package/Libraries/ReactNative/BridgelessUIManager.js +26 -8
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -0
- package/Libraries/ReactNative/UIManager.js +8 -0
- package/Libraries/Share/Share.d.ts +3 -9
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +19 -15
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
- package/Libraries/Utilities/Platform.android.js +6 -0
- package/Libraries/Utilities/Platform.d.ts +1 -0
- package/Libraries/Utilities/Platform.ios.js +6 -0
- package/Libraries/Utilities/Platform.windows.js +6 -0
- package/Libraries/vendor/emitter/EventEmitter.js +13 -13
- package/PropertySheets/Generated/PackageVersion.g.props +2 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +14 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +2 -43
- package/Shared/Shared.vcxitems +3 -0
- package/codegen/NativePlatformConstantsAndroidSpec.g.h +2 -0
- package/codegen/NativePlatformConstantsIOSSpec.g.h +2 -0
- package/codegen/NativePlatformConstantsWinSpec.g.h +2 -0
- package/codegen/rnwcoreJSI.h +189 -63
- package/package.json +11 -11
- package/types/modules/globals.d.ts +1 -1
|
@@ -13,27 +13,45 @@
|
|
|
13
13
|
import type {RootTag} from '../Types/RootTagTypes';
|
|
14
14
|
|
|
15
15
|
import {unstable_hasComponent} from '../NativeComponent/NativeComponentRegistryUnstable';
|
|
16
|
+
import ReactNativeFeatureFlags from './ReactNativeFeatureFlags';
|
|
17
|
+
|
|
18
|
+
let cachedConstants = null;
|
|
16
19
|
|
|
17
20
|
const errorMessageForMethod = (methodName: string): string =>
|
|
18
21
|
"[ReactNative Architecture][JS] '" +
|
|
19
22
|
methodName +
|
|
20
23
|
"' is not available in the new React Native architecture.";
|
|
21
24
|
|
|
25
|
+
function getCachedConstants(): Object {
|
|
26
|
+
if (!cachedConstants) {
|
|
27
|
+
cachedConstants = global.RN$LegacyInterop_UIManager_getConstants();
|
|
28
|
+
}
|
|
29
|
+
return cachedConstants;
|
|
30
|
+
}
|
|
31
|
+
|
|
22
32
|
module.exports = {
|
|
23
33
|
getViewManagerConfig: (viewManagerName: string): mixed => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
if (ReactNativeFeatureFlags.enableNativeViewConfigsInBridgelessMode) {
|
|
35
|
+
return getCachedConstants()[viewManagerName];
|
|
36
|
+
} else {
|
|
37
|
+
console.error(
|
|
38
|
+
errorMessageForMethod('getViewManagerConfig') +
|
|
39
|
+
'Use hasViewManagerConfig instead. viewManagerName: ' +
|
|
40
|
+
viewManagerName,
|
|
41
|
+
);
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
30
44
|
},
|
|
31
45
|
hasViewManagerConfig: (viewManagerName: string): boolean => {
|
|
32
46
|
return unstable_hasComponent(viewManagerName);
|
|
33
47
|
},
|
|
34
48
|
getConstants: (): Object => {
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
if (ReactNativeFeatureFlags.enableNativeViewConfigsInBridgelessMode) {
|
|
50
|
+
return getCachedConstants();
|
|
51
|
+
} else {
|
|
52
|
+
console.error(errorMessageForMethod('getConstants'));
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
37
55
|
},
|
|
38
56
|
getConstantsForViewManager: (viewManagerName: string): Object => {
|
|
39
57
|
console.error(errorMessageForMethod('getConstantsForViewManager'));
|
|
@@ -49,6 +49,14 @@ export type FeatureFlags = {|
|
|
|
49
49
|
* Enables use of AnimatedObject for animating transform values.
|
|
50
50
|
*/
|
|
51
51
|
shouldUseAnimatedObjectForTransform: () => boolean,
|
|
52
|
+
/**
|
|
53
|
+
* Enables use of setNativeProps in JS driven animations.
|
|
54
|
+
*/
|
|
55
|
+
shouldUseSetNativePropsInFabric: () => boolean,
|
|
56
|
+
/**
|
|
57
|
+
* Enables native view configs in brdgeless mode.
|
|
58
|
+
*/
|
|
59
|
+
enableNativeViewConfigsInBridgelessMode: () => boolean,
|
|
52
60
|
|};
|
|
53
61
|
|
|
54
62
|
const ReactNativeFeatureFlags: FeatureFlags = {
|
|
@@ -60,6 +68,8 @@ const ReactNativeFeatureFlags: FeatureFlags = {
|
|
|
60
68
|
isGlobalWebPerformanceLoggerEnabled: () => false,
|
|
61
69
|
enableAccessToHostTreeInFabric: () => false,
|
|
62
70
|
shouldUseAnimatedObjectForTransform: () => false,
|
|
71
|
+
shouldUseSetNativePropsInFabric: () => false,
|
|
72
|
+
enableNativeViewConfigsInBridgelessMode: () => false,
|
|
63
73
|
};
|
|
64
74
|
|
|
65
75
|
module.exports = ReactNativeFeatureFlags;
|
|
@@ -180,6 +180,14 @@ const UIManager = {
|
|
|
180
180
|
commandName: number | string,
|
|
181
181
|
commandArgs: any[],
|
|
182
182
|
) {
|
|
183
|
+
// Sometimes, libraries directly pass in the output of `findNodeHandle` to
|
|
184
|
+
// this function without checking if it's null. This guards against that
|
|
185
|
+
// case. We throw early here in Javascript so we can get a JS stacktrace
|
|
186
|
+
// instead of a harder-to-debug native Java or Objective-C stacktrace.
|
|
187
|
+
if (typeof reactTag !== 'number') {
|
|
188
|
+
throw new Error('dispatchViewManagerCommand: found null reactTag');
|
|
189
|
+
}
|
|
190
|
+
|
|
183
191
|
if (isFabricReactTag(reactTag)) {
|
|
184
192
|
const FabricUIManager = nullthrows(getFabricUIManager());
|
|
185
193
|
const shadowNode =
|
|
@@ -27,17 +27,11 @@ export type ShareOptions = {
|
|
|
27
27
|
anchor?: number | undefined;
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
export type
|
|
31
|
-
action: 'sharedAction';
|
|
32
|
-
activityType?: string | undefined;
|
|
30
|
+
export type ShareAction = {
|
|
31
|
+
action: 'sharedAction' | 'dismissedAction';
|
|
32
|
+
activityType?: string | null | undefined;
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
export type ShareDismissedAction = {
|
|
36
|
-
action: 'dismissedAction';
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export type ShareAction = ShareSharedAction | ShareDismissedAction;
|
|
40
|
-
|
|
41
35
|
export interface ShareStatic {
|
|
42
36
|
/**
|
|
43
37
|
* Open a dialog to share text content.
|
|
@@ -173,23 +173,27 @@ interface MatrixTransform {
|
|
|
173
173
|
matrix: AnimatableNumericValue[];
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
+
type MaximumOneOf<T, K extends keyof T = keyof T> = K extends keyof T
|
|
177
|
+
? {[P in K]: T[K]} & {[P in Exclude<keyof T, K>]?: never}
|
|
178
|
+
: never;
|
|
179
|
+
|
|
176
180
|
export interface TransformsStyle {
|
|
177
181
|
transform?:
|
|
178
|
-
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
182
|
+
| MaximumOneOf<
|
|
183
|
+
PerpectiveTransform &
|
|
184
|
+
RotateTransform &
|
|
185
|
+
RotateXTransform &
|
|
186
|
+
RotateYTransform &
|
|
187
|
+
RotateZTransform &
|
|
188
|
+
ScaleTransform &
|
|
189
|
+
ScaleXTransform &
|
|
190
|
+
ScaleYTransform &
|
|
191
|
+
TranslateXTransform &
|
|
192
|
+
TranslateYTransform &
|
|
193
|
+
SkewXTransform &
|
|
194
|
+
SkewYTransform &
|
|
195
|
+
MatrixTransform
|
|
196
|
+
>[]
|
|
193
197
|
| string
|
|
194
198
|
| undefined;
|
|
195
199
|
/**
|
|
@@ -15,6 +15,7 @@ import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
|
|
|
15
15
|
export interface Spec extends TurboModule {
|
|
16
16
|
+getConstants: () => {|
|
|
17
17
|
isTesting: boolean,
|
|
18
|
+
isDisableAnimations?: boolean,
|
|
18
19
|
reactNativeVersion: {|
|
|
19
20
|
major: number,
|
|
20
21
|
minor: number,
|
|
@@ -15,6 +15,7 @@ import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
|
|
|
15
15
|
export interface Spec extends TurboModule {
|
|
16
16
|
+getConstants: () => {|
|
|
17
17
|
isTesting: boolean,
|
|
18
|
+
isDisableAnimations?: boolean,
|
|
18
19
|
reactNativeVersion: {|
|
|
19
20
|
major: number,
|
|
20
21
|
minor: number,
|
|
@@ -13,6 +13,7 @@ import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
|
|
|
13
13
|
export interface Spec extends TurboModule {
|
|
14
14
|
+getConstants: () => {|
|
|
15
15
|
isTesting: boolean,
|
|
16
|
+
isDisableAnimations?: boolean,
|
|
16
17
|
reactNativeVersion: {|
|
|
17
18
|
major: number,
|
|
18
19
|
minor: number,
|
|
@@ -28,6 +28,7 @@ const Platform = {
|
|
|
28
28
|
// $FlowFixMe[unsafe-getters-setters]
|
|
29
29
|
get constants(): {|
|
|
30
30
|
isTesting: boolean,
|
|
31
|
+
isDisableAnimations?: boolean,
|
|
31
32
|
reactNativeVersion: {|
|
|
32
33
|
major: number,
|
|
33
34
|
minor: number,
|
|
@@ -61,6 +62,11 @@ const Platform = {
|
|
|
61
62
|
return false;
|
|
62
63
|
},
|
|
63
64
|
// $FlowFixMe[unsafe-getters-setters]
|
|
65
|
+
get isDisableAnimations(): boolean {
|
|
66
|
+
// $FlowFixMe[object-this-reference]
|
|
67
|
+
return this.constants.isDisableAnimations ?? this.isTesting;
|
|
68
|
+
},
|
|
69
|
+
// $FlowFixMe[unsafe-getters-setters]
|
|
64
70
|
get isTV(): boolean {
|
|
65
71
|
// $FlowFixMe[object-this-reference]
|
|
66
72
|
return this.constants.uiMode === 'tv';
|
|
@@ -30,6 +30,7 @@ const Platform = {
|
|
|
30
30
|
forceTouchAvailable: boolean,
|
|
31
31
|
interfaceIdiom: string,
|
|
32
32
|
isTesting: boolean,
|
|
33
|
+
isDisableAnimations?: boolean,
|
|
33
34
|
osVersion: string,
|
|
34
35
|
reactNativeVersion: {|
|
|
35
36
|
major: number,
|
|
@@ -65,6 +66,11 @@ const Platform = {
|
|
|
65
66
|
}
|
|
66
67
|
return false;
|
|
67
68
|
},
|
|
69
|
+
// $FlowFixMe[unsafe-getters-setters]
|
|
70
|
+
get isDisableAnimations(): boolean {
|
|
71
|
+
// $FlowFixMe[object-this-reference]
|
|
72
|
+
return this.constants.isDisableAnimations ?? this.isTesting;
|
|
73
|
+
},
|
|
68
74
|
select: <T>(spec: PlatformSelectSpec<T>): T =>
|
|
69
75
|
// $FlowFixMe[incompatible-return]
|
|
70
76
|
'ios' in spec ? spec.ios : 'native' in spec ? spec.native : spec.default,
|
|
@@ -26,6 +26,7 @@ const Platform = {
|
|
|
26
26
|
// $FlowFixMe[unsafe-getters-setters]
|
|
27
27
|
get constants(): {|
|
|
28
28
|
isTesting: boolean,
|
|
29
|
+
isDisableAnimations?: boolean,
|
|
29
30
|
reactNativeVersion: {|
|
|
30
31
|
major: number,
|
|
31
32
|
minor: number,
|
|
@@ -51,6 +52,11 @@ const Platform = {
|
|
|
51
52
|
return false;
|
|
52
53
|
},
|
|
53
54
|
// $FlowFixMe[unsafe-getters-setters]
|
|
55
|
+
get isDisableAnimations(): boolean {
|
|
56
|
+
// $FlowFixMe[object-this-reference]
|
|
57
|
+
return this.constants.isDisableAnimations ?? this.isTesting;
|
|
58
|
+
},
|
|
59
|
+
// $FlowFixMe[unsafe-getters-setters]
|
|
54
60
|
get isTV(): boolean {
|
|
55
61
|
// $FlowFixMe[object-this-reference]
|
|
56
62
|
return false;
|
|
@@ -15,13 +15,13 @@ export interface EventSubscription {
|
|
|
15
15
|
export interface IEventEmitter<TEventToArgsMap: {...}> {
|
|
16
16
|
addListener<TEvent: $Keys<TEventToArgsMap>>(
|
|
17
17
|
eventType: TEvent,
|
|
18
|
-
listener: (...args:
|
|
18
|
+
listener: (...args: TEventToArgsMap[TEvent]) => mixed,
|
|
19
19
|
context?: mixed,
|
|
20
20
|
): EventSubscription;
|
|
21
21
|
|
|
22
22
|
emit<TEvent: $Keys<TEventToArgsMap>>(
|
|
23
23
|
eventType: TEvent,
|
|
24
|
-
...args:
|
|
24
|
+
...args: TEventToArgsMap[TEvent]
|
|
25
25
|
): void;
|
|
26
26
|
|
|
27
27
|
removeAllListeners<TEvent: $Keys<TEventToArgsMap>>(eventType?: ?TEvent): void;
|
|
@@ -71,7 +71,7 @@ export default class EventEmitter<TEventToArgsMap: {...}>
|
|
|
71
71
|
*/
|
|
72
72
|
addListener<TEvent: $Keys<TEventToArgsMap>>(
|
|
73
73
|
eventType: TEvent,
|
|
74
|
-
listener: (...args:
|
|
74
|
+
listener: (...args: TEventToArgsMap[TEvent]) => mixed,
|
|
75
75
|
context: mixed,
|
|
76
76
|
): EventSubscription {
|
|
77
77
|
if (typeof listener !== 'function') {
|
|
@@ -79,11 +79,12 @@ export default class EventEmitter<TEventToArgsMap: {...}>
|
|
|
79
79
|
'EventEmitter.addListener(...): 2nd argument must be a function.',
|
|
80
80
|
);
|
|
81
81
|
}
|
|
82
|
-
const registrations = allocate<
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
82
|
+
const registrations = allocate<
|
|
83
|
+
TEventToArgsMap,
|
|
84
|
+
TEvent,
|
|
85
|
+
TEventToArgsMap[TEvent],
|
|
86
|
+
>(this._registry, eventType);
|
|
87
|
+
const registration: Registration<TEventToArgsMap[TEvent]> = {
|
|
87
88
|
context,
|
|
88
89
|
listener,
|
|
89
90
|
remove(): void {
|
|
@@ -103,11 +104,10 @@ export default class EventEmitter<TEventToArgsMap: {...}>
|
|
|
103
104
|
*/
|
|
104
105
|
emit<TEvent: $Keys<TEventToArgsMap>>(
|
|
105
106
|
eventType: TEvent,
|
|
106
|
-
...args:
|
|
107
|
+
...args: TEventToArgsMap[TEvent]
|
|
107
108
|
): void {
|
|
108
|
-
const registrations: ?Set<
|
|
109
|
-
|
|
110
|
-
> = this._registry[eventType];
|
|
109
|
+
const registrations: ?Set<Registration<TEventToArgsMap[TEvent]>> =
|
|
110
|
+
this._registry[eventType];
|
|
111
111
|
if (registrations != null) {
|
|
112
112
|
for (const registration of [...registrations]) {
|
|
113
113
|
registration.listener.apply(registration.context, args);
|
|
@@ -140,7 +140,7 @@ export default class EventEmitter<TEventToArgsMap: {...}>
|
|
|
140
140
|
function allocate<
|
|
141
141
|
TEventToArgsMap: {...},
|
|
142
142
|
TEvent: $Keys<TEventToArgsMap>,
|
|
143
|
-
TEventArgs:
|
|
143
|
+
TEventArgs: TEventToArgsMap[TEvent],
|
|
144
144
|
>(
|
|
145
145
|
registry: Registry<TEventToArgsMap>,
|
|
146
146
|
eventType: TEvent,
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
-->
|
|
11
11
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
12
12
|
<PropertyGroup>
|
|
13
|
-
<ReactNativeWindowsVersion>0.0.0-canary.
|
|
13
|
+
<ReactNativeWindowsVersion>0.0.0-canary.686</ReactNativeWindowsVersion>
|
|
14
14
|
<ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
|
|
15
15
|
<ReactNativeWindowsMinor>0</ReactNativeWindowsMinor>
|
|
16
16
|
<ReactNativeWindowsPatch>0</ReactNativeWindowsPatch>
|
|
17
17
|
<ReactNativeWindowsCanary>true</ReactNativeWindowsCanary>
|
|
18
|
-
<ReactNativeWindowsCommitId>
|
|
18
|
+
<ReactNativeWindowsCommitId>1f6d2a9ab892a5ab2ffb9652d4ee41ff6a04b2b6</ReactNativeWindowsCommitId>
|
|
19
19
|
</PropertyGroup>
|
|
20
20
|
</Project>
|
|
@@ -478,6 +478,20 @@ TEST_P(JSITest, ArrayTest) {
|
|
|
478
478
|
Array alpha2 = Array(rt, 1);
|
|
479
479
|
alpha2 = std::move(alpha);
|
|
480
480
|
EXPECT_EQ(alpha2.size(rt), 4);
|
|
481
|
+
|
|
482
|
+
// Test getting/setting an element that is an accessor.
|
|
483
|
+
auto arrWithAccessor =
|
|
484
|
+
eval(
|
|
485
|
+
"Object.defineProperty([], '0', {set(){ throw 72 }, get(){ return 45 }});")
|
|
486
|
+
.getObject(rt)
|
|
487
|
+
.getArray(rt);
|
|
488
|
+
try {
|
|
489
|
+
arrWithAccessor.setValueAtIndex(rt, 0, 1);
|
|
490
|
+
FAIL() << "Expected exception";
|
|
491
|
+
} catch (const JSError& err) {
|
|
492
|
+
EXPECT_EQ(err.value().getNumber(), 72);
|
|
493
|
+
}
|
|
494
|
+
EXPECT_EQ(arrWithAccessor.getValueAtIndex(rt, 0).getNumber(), 45);
|
|
481
495
|
}
|
|
482
496
|
|
|
483
497
|
TEST_P(JSITest, FunctionTest) {
|
package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp
CHANGED
|
@@ -58,43 +58,6 @@ static jsi::Value touchEventPayload(
|
|
|
58
58
|
return object;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
static jsi::Value pointerEventPayload(
|
|
62
|
-
jsi::Runtime &runtime,
|
|
63
|
-
PointerEvent const &event) {
|
|
64
|
-
auto object = jsi::Object(runtime);
|
|
65
|
-
object.setProperty(runtime, "pointerId", event.pointerId);
|
|
66
|
-
object.setProperty(runtime, "pressure", event.pressure);
|
|
67
|
-
object.setProperty(runtime, "pointerType", event.pointerType);
|
|
68
|
-
object.setProperty(runtime, "clientX", event.clientPoint.x);
|
|
69
|
-
object.setProperty(runtime, "clientY", event.clientPoint.y);
|
|
70
|
-
// x/y are an alias to clientX/Y
|
|
71
|
-
object.setProperty(runtime, "x", event.clientPoint.x);
|
|
72
|
-
object.setProperty(runtime, "y", event.clientPoint.y);
|
|
73
|
-
// since RN doesn't have a scrollable root, pageX/Y will always equal
|
|
74
|
-
// clientX/Y
|
|
75
|
-
object.setProperty(runtime, "pageX", event.clientPoint.x);
|
|
76
|
-
object.setProperty(runtime, "pageY", event.clientPoint.y);
|
|
77
|
-
object.setProperty(runtime, "screenX", event.screenPoint.x);
|
|
78
|
-
object.setProperty(runtime, "screenY", event.screenPoint.y);
|
|
79
|
-
object.setProperty(runtime, "offsetX", event.offsetPoint.x);
|
|
80
|
-
object.setProperty(runtime, "offsetY", event.offsetPoint.y);
|
|
81
|
-
object.setProperty(runtime, "width", event.width);
|
|
82
|
-
object.setProperty(runtime, "height", event.height);
|
|
83
|
-
object.setProperty(runtime, "tiltX", event.tiltX);
|
|
84
|
-
object.setProperty(runtime, "tiltY", event.tiltY);
|
|
85
|
-
object.setProperty(runtime, "detail", event.detail);
|
|
86
|
-
object.setProperty(runtime, "buttons", event.buttons);
|
|
87
|
-
object.setProperty(runtime, "tangentialPressure", event.tangentialPressure);
|
|
88
|
-
object.setProperty(runtime, "twist", event.twist);
|
|
89
|
-
object.setProperty(runtime, "ctrlKey", event.ctrlKey);
|
|
90
|
-
object.setProperty(runtime, "shiftKey", event.shiftKey);
|
|
91
|
-
object.setProperty(runtime, "altKey", event.altKey);
|
|
92
|
-
object.setProperty(runtime, "metaKey", event.metaKey);
|
|
93
|
-
object.setProperty(runtime, "isPrimary", event.isPrimary);
|
|
94
|
-
object.setProperty(runtime, "button", event.button);
|
|
95
|
-
return object;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
61
|
void TouchEventEmitter::dispatchTouchEvent(
|
|
99
62
|
std::string type,
|
|
100
63
|
TouchEvent const &event,
|
|
@@ -116,9 +79,7 @@ void TouchEventEmitter::dispatchPointerEvent(
|
|
|
116
79
|
RawEvent::Category category) const {
|
|
117
80
|
dispatchEvent(
|
|
118
81
|
std::move(type),
|
|
119
|
-
|
|
120
|
-
return pointerEventPayload(runtime, event);
|
|
121
|
-
},
|
|
82
|
+
std::make_shared<PointerEvent>(event),
|
|
122
83
|
priority,
|
|
123
84
|
category);
|
|
124
85
|
}
|
|
@@ -178,9 +139,7 @@ void TouchEventEmitter::onPointerDown(const PointerEvent &event) const {
|
|
|
178
139
|
}
|
|
179
140
|
|
|
180
141
|
void TouchEventEmitter::onPointerMove(const PointerEvent &event) const {
|
|
181
|
-
dispatchUniqueEvent("pointerMove",
|
|
182
|
-
return pointerEventPayload(runtime, event);
|
|
183
|
-
});
|
|
142
|
+
dispatchUniqueEvent("pointerMove", std::make_shared<PointerEvent>(event));
|
|
184
143
|
}
|
|
185
144
|
|
|
186
145
|
void TouchEventEmitter::onPointerUp(const PointerEvent &event) const {
|
package/Shared/Shared.vcxitems
CHANGED
|
@@ -440,6 +440,7 @@
|
|
|
440
440
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\TextShadowNode.cpp" />
|
|
441
441
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\RawTextShadowNode.cpp" />
|
|
442
442
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\AccessibilityProps.cpp" DisableSpecificWarnings="4018;%(DisableSpecificWarnings)" />
|
|
443
|
+
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\PointerEvent.cpp" DisableSpecificWarnings="4018;%(DisableSpecificWarnings)" />
|
|
443
444
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\TouchEventEmitter.cpp" DisableSpecificWarnings="4018;%(DisableSpecificWarnings)" />
|
|
444
445
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\ViewEventEmitter.cpp" DisableSpecificWarnings="4018;%(DisableSpecificWarnings)" />
|
|
445
446
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\ViewProps.cpp" DisableSpecificWarnings="4459;4715;%(DisableSpecificWarnings)" />
|
|
@@ -448,6 +449,7 @@
|
|
|
448
449
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\YogaStylableProps.cpp" DisableSpecificWarnings="4715;%(DisableSpecificWarnings)" />
|
|
449
450
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\BatchedEventQueue.cpp" />
|
|
450
451
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\ComponentDescriptor.cpp" />
|
|
452
|
+
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\ValueFactoryEventPayload.cpp" />
|
|
451
453
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\utils\CoreFeatures.cpp" />
|
|
452
454
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\DynamicPropsUtilities.cpp" />
|
|
453
455
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\EventBeat.cpp" />
|
|
@@ -504,6 +506,7 @@
|
|
|
504
506
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\templateprocessor\UITemplateProcessor.cpp" DisableSpecificWarnings="4244;%(DisableSpecificWarnings)" />
|
|
505
507
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\textlayoutmanager\TextMeasureCache.cpp" />
|
|
506
508
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\uimanager\bindingUtils.cpp" />
|
|
509
|
+
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\uimanager\PointerEventsProcessor.cpp" />
|
|
507
510
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\uimanager\SurfaceRegistryBinding.cpp" DisableSpecificWarnings="4715;%(DisableSpecificWarnings)" />
|
|
508
511
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\uimanager\UIManager.cpp" />
|
|
509
512
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\uimanager\UIManagerBinding.cpp" DisableSpecificWarnings="4389;4715;%(DisableSpecificWarnings)" />
|
|
@@ -29,6 +29,8 @@ REACT_STRUCT(PlatformConstantsAndroidSpec_Constants)
|
|
|
29
29
|
struct PlatformConstantsAndroidSpec_Constants {
|
|
30
30
|
REACT_FIELD(isTesting)
|
|
31
31
|
bool isTesting;
|
|
32
|
+
REACT_FIELD(isDisableAnimations)
|
|
33
|
+
std::optional<bool> isDisableAnimations;
|
|
32
34
|
REACT_FIELD(reactNativeVersion)
|
|
33
35
|
PlatformConstantsAndroidSpec_Constants_reactNativeVersion reactNativeVersion;
|
|
34
36
|
REACT_FIELD(Version)
|
|
@@ -29,6 +29,8 @@ REACT_STRUCT(PlatformConstantsIOSSpec_Constants)
|
|
|
29
29
|
struct PlatformConstantsIOSSpec_Constants {
|
|
30
30
|
REACT_FIELD(isTesting)
|
|
31
31
|
bool isTesting;
|
|
32
|
+
REACT_FIELD(isDisableAnimations)
|
|
33
|
+
std::optional<bool> isDisableAnimations;
|
|
32
34
|
REACT_FIELD(reactNativeVersion)
|
|
33
35
|
PlatformConstantsIOSSpec_Constants_reactNativeVersion reactNativeVersion;
|
|
34
36
|
REACT_FIELD(forceTouchAvailable)
|
|
@@ -29,6 +29,8 @@ REACT_STRUCT(PlatformConstantsWinSpec_Constants)
|
|
|
29
29
|
struct PlatformConstantsWinSpec_Constants {
|
|
30
30
|
REACT_FIELD(isTesting)
|
|
31
31
|
bool isTesting;
|
|
32
|
+
REACT_FIELD(isDisableAnimations)
|
|
33
|
+
std::optional<bool> isDisableAnimations;
|
|
32
34
|
REACT_FIELD(reactNativeVersion)
|
|
33
35
|
PlatformConstantsWinSpec_Constants_reactNativeVersion reactNativeVersion;
|
|
34
36
|
REACT_FIELD(osVersion)
|