mirror of
https://github.com/facebook/react.git
synced 2026-02-26 18:58:05 +00:00
Move EventTypes to ReactTypes (#15364)
This commit is contained in:
@@ -1,53 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @flow
|
||||
*/
|
||||
|
||||
import type {AnyNativeEvent} from 'events/PluginModuleType';
|
||||
import type {ReactEventResponderEventType} from 'shared/ReactTypes';
|
||||
|
||||
export type ResponderEvent = {
|
||||
nativeEvent: AnyNativeEvent,
|
||||
target: Element | Document,
|
||||
type: string,
|
||||
passive: boolean,
|
||||
passiveSupported: boolean,
|
||||
};
|
||||
|
||||
export type ResponderDispatchEventOptions = {
|
||||
capture?: boolean,
|
||||
discrete?: boolean,
|
||||
stopPropagation?: boolean,
|
||||
};
|
||||
|
||||
export type ResponderContext = {
|
||||
dispatchEvent: (
|
||||
eventObject: Object,
|
||||
otpions: ResponderDispatchEventOptions,
|
||||
) => void,
|
||||
isTargetWithinElement: (
|
||||
childTarget: Element | Document,
|
||||
parentTarget: Element | Document,
|
||||
) => boolean,
|
||||
isTargetWithinEventComponent: (Element | Document) => boolean,
|
||||
isPositionWithinTouchHitTarget: (
|
||||
doc: Document,
|
||||
x: number,
|
||||
y: number,
|
||||
) => boolean,
|
||||
addRootEventTypes: (
|
||||
document: Document,
|
||||
rootEventTypes: Array<ReactEventResponderEventType>,
|
||||
) => void,
|
||||
removeRootEventTypes: (
|
||||
rootEventTypes: Array<ReactEventResponderEventType>,
|
||||
) => void,
|
||||
hasOwnership: () => boolean,
|
||||
requestOwnership: () => boolean,
|
||||
releaseOwnership: () => boolean,
|
||||
setTimeout: (func: () => void, timeout: number) => TimeoutID,
|
||||
};
|
||||
@@ -6,11 +6,6 @@
|
||||
* @flow
|
||||
*/
|
||||
|
||||
import type {
|
||||
ResponderContext,
|
||||
ResponderEvent,
|
||||
ResponderDispatchEventOptions,
|
||||
} from 'events/EventTypes';
|
||||
import {
|
||||
type EventSystemFlags,
|
||||
IS_PASSIVE,
|
||||
@@ -24,6 +19,9 @@ import {
|
||||
import type {
|
||||
ReactEventResponderEventType,
|
||||
ReactEventComponentInstance,
|
||||
ReactResponderContext,
|
||||
ReactResponderEvent,
|
||||
ReactResponderDispatchEventOptions,
|
||||
} from 'shared/ReactTypes';
|
||||
import type {DOMTopLevelEventType} from 'events/TopLevelEventTypes';
|
||||
import {batchedUpdates, interactiveUpdates} from 'events/ReactGenericBatching';
|
||||
@@ -58,10 +56,10 @@ let currentOwner = null;
|
||||
let currentInstance: ReactEventComponentInstance;
|
||||
let currentEventQueue: EventQueue;
|
||||
|
||||
const eventResponderContext: ResponderContext = {
|
||||
const eventResponderContext: ReactResponderContext = {
|
||||
dispatchEvent(
|
||||
possibleEventObject: Object,
|
||||
{capture, discrete, stopPropagation}: ResponderDispatchEventOptions,
|
||||
{capture, discrete, stopPropagation}: ReactResponderDispatchEventOptions,
|
||||
): void {
|
||||
const eventQueue = currentEventQueue;
|
||||
const {listener, target, type} = possibleEventObject;
|
||||
@@ -260,7 +258,7 @@ function createResponderEvent(
|
||||
nativeEvent: AnyNativeEvent,
|
||||
nativeEventTarget: Element | Document,
|
||||
eventSystemFlags: EventSystemFlags,
|
||||
): ResponderEvent {
|
||||
): ReactResponderEvent {
|
||||
return {
|
||||
nativeEvent: nativeEvent,
|
||||
target: nativeEventTarget,
|
||||
@@ -342,7 +340,7 @@ function getTargetEventTypes(
|
||||
|
||||
function handleTopLevelType(
|
||||
topLevelType: DOMTopLevelEventType,
|
||||
responderEvent: ResponderEvent,
|
||||
responderEvent: ReactResponderEvent,
|
||||
eventComponentInstance: ReactEventComponentInstance,
|
||||
isRootLevelEvent: boolean,
|
||||
): void {
|
||||
|
||||
11
packages/react-events/src/Drag.js
vendored
11
packages/react-events/src/Drag.js
vendored
@@ -7,7 +7,10 @@
|
||||
* @flow
|
||||
*/
|
||||
|
||||
import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
|
||||
import type {
|
||||
ReactResponderEvent,
|
||||
ReactResponderContext,
|
||||
} from 'shared/ReactTypes';
|
||||
import {REACT_EVENT_COMPONENT_TYPE} from 'shared/ReactSymbols';
|
||||
|
||||
const targetEventTypes = ['pointerdown', 'pointercancel'];
|
||||
@@ -62,7 +65,7 @@ function createDragEvent(
|
||||
}
|
||||
|
||||
function dispatchDragEvent(
|
||||
context: ResponderContext,
|
||||
context: ReactResponderContext,
|
||||
name: DragEventType,
|
||||
listener: DragEvent => void,
|
||||
state: DragState,
|
||||
@@ -88,8 +91,8 @@ const DragResponder = {
|
||||
};
|
||||
},
|
||||
onEvent(
|
||||
event: ResponderEvent,
|
||||
context: ResponderContext,
|
||||
event: ReactResponderEvent,
|
||||
context: ReactResponderContext,
|
||||
props: Object,
|
||||
state: DragState,
|
||||
): void {
|
||||
|
||||
17
packages/react-events/src/Focus.js
vendored
17
packages/react-events/src/Focus.js
vendored
@@ -7,7 +7,10 @@
|
||||
* @flow
|
||||
*/
|
||||
|
||||
import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
|
||||
import type {
|
||||
ReactResponderEvent,
|
||||
ReactResponderContext,
|
||||
} from 'shared/ReactTypes';
|
||||
import {REACT_EVENT_COMPONENT_TYPE} from 'shared/ReactSymbols';
|
||||
|
||||
type FocusProps = {
|
||||
@@ -47,8 +50,8 @@ function createFocusEvent(
|
||||
}
|
||||
|
||||
function dispatchFocusInEvents(
|
||||
event: ResponderEvent,
|
||||
context: ResponderContext,
|
||||
event: ReactResponderEvent,
|
||||
context: ReactResponderContext,
|
||||
props: FocusProps,
|
||||
) {
|
||||
const {nativeEvent, target} = event;
|
||||
@@ -69,8 +72,8 @@ function dispatchFocusInEvents(
|
||||
}
|
||||
|
||||
function dispatchFocusOutEvents(
|
||||
event: ResponderEvent,
|
||||
context: ResponderContext,
|
||||
event: ReactResponderEvent,
|
||||
context: ReactResponderContext,
|
||||
props: FocusProps,
|
||||
) {
|
||||
const {nativeEvent, target} = event;
|
||||
@@ -98,8 +101,8 @@ const FocusResponder = {
|
||||
};
|
||||
},
|
||||
onEvent(
|
||||
event: ResponderEvent,
|
||||
context: ResponderContext,
|
||||
event: ReactResponderEvent,
|
||||
context: ReactResponderContext,
|
||||
props: Object,
|
||||
state: FocusState,
|
||||
): void {
|
||||
|
||||
21
packages/react-events/src/Hover.js
vendored
21
packages/react-events/src/Hover.js
vendored
@@ -7,7 +7,10 @@
|
||||
* @flow
|
||||
*/
|
||||
|
||||
import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
|
||||
import type {
|
||||
ReactResponderEvent,
|
||||
ReactResponderContext,
|
||||
} from 'shared/ReactTypes';
|
||||
import {REACT_EVENT_COMPONENT_TYPE} from 'shared/ReactSymbols';
|
||||
|
||||
type HoverProps = {
|
||||
@@ -64,8 +67,8 @@ function createHoverEvent(
|
||||
}
|
||||
|
||||
function dispatchHoverChangeEvent(
|
||||
event: ResponderEvent,
|
||||
context: ResponderContext,
|
||||
event: ReactResponderEvent,
|
||||
context: ReactResponderContext,
|
||||
props: HoverProps,
|
||||
state: HoverState,
|
||||
): void {
|
||||
@@ -81,8 +84,8 @@ function dispatchHoverChangeEvent(
|
||||
}
|
||||
|
||||
function dispatchHoverStartEvents(
|
||||
event: ResponderEvent,
|
||||
context: ResponderContext,
|
||||
event: ReactResponderEvent,
|
||||
context: ReactResponderContext,
|
||||
props: HoverProps,
|
||||
state: HoverState,
|
||||
): void {
|
||||
@@ -132,8 +135,8 @@ function dispatchHoverStartEvents(
|
||||
}
|
||||
|
||||
function dispatchHoverEndEvents(
|
||||
event: ResponderEvent,
|
||||
context: ResponderContext,
|
||||
event: ReactResponderEvent,
|
||||
context: ReactResponderContext,
|
||||
props: HoverProps,
|
||||
state: HoverState,
|
||||
) {
|
||||
@@ -199,8 +202,8 @@ const HoverResponder = {
|
||||
};
|
||||
},
|
||||
onEvent(
|
||||
event: ResponderEvent,
|
||||
context: ResponderContext,
|
||||
event: ReactResponderEvent,
|
||||
context: ReactResponderContext,
|
||||
props: HoverProps,
|
||||
state: HoverState,
|
||||
): void {
|
||||
|
||||
29
packages/react-events/src/Press.js
vendored
29
packages/react-events/src/Press.js
vendored
@@ -7,7 +7,10 @@
|
||||
* @flow
|
||||
*/
|
||||
|
||||
import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
|
||||
import type {
|
||||
ReactResponderEvent,
|
||||
ReactResponderContext,
|
||||
} from 'shared/ReactTypes';
|
||||
import {REACT_EVENT_COMPONENT_TYPE} from 'shared/ReactSymbols';
|
||||
|
||||
type PressProps = {
|
||||
@@ -89,7 +92,7 @@ function createPressEvent(
|
||||
}
|
||||
|
||||
function dispatchEvent(
|
||||
context: ResponderContext,
|
||||
context: ReactResponderContext,
|
||||
state: PressState,
|
||||
name: PressEventType,
|
||||
listener: (e: Object) => void,
|
||||
@@ -100,7 +103,7 @@ function dispatchEvent(
|
||||
}
|
||||
|
||||
function dispatchPressChangeEvent(
|
||||
context: ResponderContext,
|
||||
context: ReactResponderContext,
|
||||
props: PressProps,
|
||||
state: PressState,
|
||||
): void {
|
||||
@@ -111,7 +114,7 @@ function dispatchPressChangeEvent(
|
||||
}
|
||||
|
||||
function dispatchLongPressChangeEvent(
|
||||
context: ResponderContext,
|
||||
context: ReactResponderContext,
|
||||
props: PressProps,
|
||||
state: PressState,
|
||||
): void {
|
||||
@@ -150,7 +153,7 @@ function deactivate(context, props, state) {
|
||||
}
|
||||
|
||||
function dispatchPressStartEvents(
|
||||
context: ResponderContext,
|
||||
context: ReactResponderContext,
|
||||
props: PressProps,
|
||||
state: PressState,
|
||||
): void {
|
||||
@@ -212,7 +215,7 @@ function dispatchPressStartEvents(
|
||||
}
|
||||
|
||||
function dispatchPressEndEvents(
|
||||
context: ResponderContext,
|
||||
context: ReactResponderContext,
|
||||
props: PressProps,
|
||||
state: PressState,
|
||||
): void {
|
||||
@@ -265,7 +268,7 @@ function calculateDelayMS(delay: ?number, min = 0, fallback = 0) {
|
||||
}
|
||||
|
||||
function unmountResponder(
|
||||
context: ResponderContext,
|
||||
context: ReactResponderContext,
|
||||
props: PressProps,
|
||||
state: PressState,
|
||||
): void {
|
||||
@@ -293,8 +296,8 @@ const PressResponder = {
|
||||
};
|
||||
},
|
||||
onEvent(
|
||||
event: ResponderEvent,
|
||||
context: ResponderContext,
|
||||
event: ReactResponderEvent,
|
||||
context: ReactResponderContext,
|
||||
props: PressProps,
|
||||
state: PressState,
|
||||
): void {
|
||||
@@ -491,12 +494,16 @@ const PressResponder = {
|
||||
}
|
||||
}
|
||||
},
|
||||
onUnmount(context: ResponderContext, props: PressProps, state: PressState) {
|
||||
onUnmount(
|
||||
context: ReactResponderContext,
|
||||
props: PressProps,
|
||||
state: PressState,
|
||||
) {
|
||||
unmountResponder(context, props, state);
|
||||
},
|
||||
// TODO This method doesn't work as of yet
|
||||
onOwnershipChange(
|
||||
context: ResponderContext,
|
||||
context: ReactResponderContext,
|
||||
props: PressProps,
|
||||
state: PressState,
|
||||
) {
|
||||
|
||||
11
packages/react-events/src/Swipe.js
vendored
11
packages/react-events/src/Swipe.js
vendored
@@ -7,7 +7,10 @@
|
||||
* @flow
|
||||
*/
|
||||
|
||||
import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
|
||||
import type {
|
||||
ReactResponderEvent,
|
||||
ReactResponderContext,
|
||||
} from 'shared/ReactTypes';
|
||||
import {REACT_EVENT_COMPONENT_TYPE} from 'shared/ReactSymbols';
|
||||
|
||||
const targetEventTypes = ['pointerdown', 'pointercancel'];
|
||||
@@ -52,7 +55,7 @@ function createSwipeEvent(
|
||||
}
|
||||
|
||||
function dispatchSwipeEvent(
|
||||
context: ResponderContext,
|
||||
context: ReactResponderContext,
|
||||
name: SwipeEventType,
|
||||
listener: SwipeEvent => void,
|
||||
state: SwipeState,
|
||||
@@ -92,8 +95,8 @@ const SwipeResponder = {
|
||||
};
|
||||
},
|
||||
onEvent(
|
||||
event: ResponderEvent,
|
||||
context: ResponderContext,
|
||||
event: ReactResponderEvent,
|
||||
context: ReactResponderContext,
|
||||
props: Object,
|
||||
state: SwipeState,
|
||||
): void {
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
* @flow
|
||||
*/
|
||||
|
||||
import type {ResponderEvent, ResponderContext} from 'events/EventTypes';
|
||||
|
||||
export type ReactNode =
|
||||
| React$Element<any>
|
||||
| ReactPortal
|
||||
@@ -91,18 +89,18 @@ export type ReactEventResponder = {
|
||||
targetEventTypes: Array<ReactEventResponderEventType>,
|
||||
createInitialState?: (props: null | Object) => Object,
|
||||
onEvent: (
|
||||
event: ResponderEvent,
|
||||
context: ResponderContext,
|
||||
event: ReactResponderEvent,
|
||||
context: ReactResponderContext,
|
||||
props: null | Object,
|
||||
state: null | Object,
|
||||
) => void,
|
||||
onUnmount: (
|
||||
context: ResponderContext,
|
||||
context: ReactResponderContext,
|
||||
props: null | Object,
|
||||
state: null | Object,
|
||||
) => void,
|
||||
onOwnershipChange: (
|
||||
context: ResponderContext,
|
||||
context: ReactResponderContext,
|
||||
props: null | Object,
|
||||
state: null | Object,
|
||||
) => void,
|
||||
@@ -128,3 +126,47 @@ export type ReactEventTarget = {|
|
||||
displayName?: string,
|
||||
type: Symbol | number,
|
||||
|};
|
||||
|
||||
type AnyNativeEvent = Event | KeyboardEvent | MouseEvent | Touch;
|
||||
|
||||
export type ReactResponderEvent = {
|
||||
nativeEvent: AnyNativeEvent,
|
||||
target: Element | Document,
|
||||
type: string,
|
||||
passive: boolean,
|
||||
passiveSupported: boolean,
|
||||
};
|
||||
|
||||
export type ReactResponderDispatchEventOptions = {
|
||||
capture?: boolean,
|
||||
discrete?: boolean,
|
||||
stopPropagation?: boolean,
|
||||
};
|
||||
|
||||
export type ReactResponderContext = {
|
||||
dispatchEvent: (
|
||||
eventObject: Object,
|
||||
otpions: ReactResponderDispatchEventOptions,
|
||||
) => void,
|
||||
isTargetWithinElement: (
|
||||
childTarget: Element | Document,
|
||||
parentTarget: Element | Document,
|
||||
) => boolean,
|
||||
isTargetWithinEventComponent: (Element | Document) => boolean,
|
||||
isPositionWithinTouchHitTarget: (
|
||||
doc: Document,
|
||||
x: number,
|
||||
y: number,
|
||||
) => boolean,
|
||||
addRootEventTypes: (
|
||||
document: Document,
|
||||
rootEventTypes: Array<ReactEventResponderEventType>,
|
||||
) => void,
|
||||
removeRootEventTypes: (
|
||||
rootEventTypes: Array<ReactEventResponderEventType>,
|
||||
) => void,
|
||||
hasOwnership: () => boolean,
|
||||
requestOwnership: () => boolean,
|
||||
releaseOwnership: () => boolean,
|
||||
setTimeout: (func: () => void, timeout: number) => TimeoutID,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user