Skip to content

Commit 6e5cefe

Browse files
javachefacebook-github-bot
authored andcommitted
Codemod arvr to use onPointer* instead of onEnter/onExit/onMove
Summary: Changelog: [Internal] Improve experimental support for pointer event dispatching support in JS Reviewed By: mdvacca Differential Revision: D35216647 fbshipit-source-id: 212f038115e4713097db05847a9638efe0a25bed
1 parent 9f1fa91 commit 6e5cefe

File tree

3 files changed

+34
-18
lines changed

3 files changed

+34
-18
lines changed

Libraries/Components/View/ViewPropTypes.js

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import type {
1414
BlurEvent,
1515
FocusEvent,
1616
MouseEvent,
17+
PointerEvent,
1718
PressEvent,
1819
Layout,
1920
LayoutEvent,
@@ -84,8 +85,28 @@ type DirectEventProps = $ReadOnly<{|
8485
|}>;
8586

8687
type MouseEventProps = $ReadOnly<{|
87-
onMouseEnter?: (event: MouseEvent) => void,
88-
onMouseLeave?: (event: MouseEvent) => void,
88+
onMouseEnter?: ?(event: MouseEvent) => void,
89+
onMouseLeave?: ?(event: MouseEvent) => void,
90+
|}>;
91+
92+
type PointerEventProps = $ReadOnly<{|
93+
onPointerEnter?: ?(event: PointerEvent) => void,
94+
onPointerLeave?: ?(event: PointerEvent) => void,
95+
onPointerMove?: ?(event: PointerEvent) => void,
96+
onPointerCancel?: ?(e: PointerEvent) => void,
97+
onPointerCancelCapture?: ?(e: PointerEvent) => void,
98+
onPointerDown?: ?(e: PointerEvent) => void,
99+
onPointerDownCapture?: ?(e: PointerEvent) => void,
100+
onPointerUp?: ?(e: PointerEvent) => void,
101+
onPointerUpCapture?: ?(e: PointerEvent) => void,
102+
103+
// FIXME: these events are temporary while we converge pointer event handling
104+
onPointerEnter2?: ?(e: PointerEvent) => void,
105+
onPointerEnter2Capture?: ?(e: PointerEvent) => void,
106+
onPointerLeave2?: ?(e: PointerEvent) => void,
107+
onPointerLeave2Capture?: ?(e: PointerEvent) => void,
108+
onPointerMove2?: ?(e: PointerEvent) => void,
109+
onPointerMove2Capture?: ?(e: PointerEvent) => void,
89110
|}>;
90111

91112
type TouchEventProps = $ReadOnly<{|
@@ -99,20 +120,6 @@ type TouchEventProps = $ReadOnly<{|
99120
onTouchStartCapture?: ?(e: PressEvent) => void,
100121
|}>;
101122

102-
type PointerEventCallbackProps = $ReadOnly<{|
103-
onPointerCancel?: ?(e: PointerEvent) => void,
104-
onPointerCancelCapture?: ?(e: PointerEvent) => void,
105-
onPointerDown?: ?(e: PointerEvent) => void,
106-
onPointerDownCapture?: ?(e: PointerEvent) => void,
107-
onPointerEnter2?: ?(e: PointerEvent) => void,
108-
onPointerLeave2?: ?(e: PointerEvent) => void,
109-
onPointerEnter2Capture?: ?(e: PointerEvent) => void,
110-
onPointerLeave2Capture?: ?(e: PointerEvent) => void,
111-
onPointerMove2Capture?: ?(e: PointerEvent) => void,
112-
onPointerUp?: ?(e: PointerEvent) => void,
113-
onPointerUpCapture?: ?(e: PointerEvent) => void,
114-
|}>;
115-
116123
/**
117124
* For most touch interactions, you'll simply want to wrap your component in
118125
* `TouchableHighlight` or `TouchableOpacity`. Check out `Touchable.js`,
@@ -395,8 +402,8 @@ export type ViewProps = $ReadOnly<{|
395402
...DirectEventProps,
396403
...GestureResponderEventProps,
397404
...MouseEventProps,
405+
...PointerEventProps,
398406
...TouchEventProps,
399-
...PointerEventCallbackProps,
400407
...AndroidViewProps,
401408
...IOSViewProps,
402409

Libraries/Text/TextProps.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import type {
1414
LayoutEvent,
15+
PointerEvent,
1516
PressEvent,
1617
TextLayoutEvent,
1718
} from '../Types/CoreEventTypes';
@@ -31,10 +32,18 @@ export type PressRetentionOffset = $ReadOnly<{|
3132
right: number,
3233
|}>;
3334

35+
type PointerEventProps = $ReadOnly<{|
36+
onPointerEnter?: (event: PointerEvent) => void,
37+
onPointerLeave?: (event: PointerEvent) => void,
38+
onPointerMove?: (event: PointerEvent) => void,
39+
|}>;
40+
3441
/**
3542
* @see https://reactnative.dev/docs/text#reference
3643
*/
3744
export type TextProps = $ReadOnly<{|
45+
...PointerEventProps,
46+
3847
/**
3948
* Indicates whether the view is an accessibility element.
4049
*

packages/rn-tester/js/examples/Experimental/W3CPointerEventsExample.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function EventfulView(props: {|
3030
const [tag, setTag] = React.useState('');
3131

3232
const eventLog = eventName => event => {
33-
// $FlowFixMe[prop-missing] Using private property
33+
// $FlowFixMe Using private property
3434
log(`${name} - ${eventName} - target: ${event.target._nativeTag}`);
3535
setLastEvent(eventName);
3636
};

0 commit comments

Comments
 (0)