diff --git a/packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js b/packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js
index c30a8cf9e6..f566c164d6 100644
--- a/packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js
+++ b/packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js
@@ -26,8 +26,6 @@ function createReactEventComponent({
onMount,
onUnmount,
onOwnershipChange,
- allowMultipleHostChildren,
- allowEventHooks,
}) {
const testEventResponder = {
displayName: 'TestEventComponent',
@@ -39,8 +37,6 @@ function createReactEventComponent({
onMount,
onUnmount,
onOwnershipChange,
- allowMultipleHostChildren: allowMultipleHostChildren || false,
- allowEventHooks: allowEventHooks || true,
};
return React.unstable_createEvent(testEventResponder);
@@ -822,133 +818,6 @@ describe('DOMEventResponderSystem', () => {
expect(container.innerHTML).toBe('');
});
- it('should warn if multiple host components are detected without allowMultipleHostChildren', () => {
- const EventComponent = createReactEventComponent({
- targetEventTypes: [],
- onEvent: () => {},
- allowMultipleHostChildren: false,
- });
-
- const Test = () => (
-
-
-
-
- );
-
- expect(() => {
- ReactDOM.render(, container);
- }).toWarnDev(
- 'Warning: A "" event component cannot contain multiple host children.',
- );
-
- function Component() {
- return ;
- }
-
- const Test2 = () => (
-
-
-
-
- );
-
- expect(() => {
- ReactDOM.render(, container);
- }).toWarnDev(
- 'Warning: A "" event component cannot contain multiple host children.',
- );
- });
-
- it('should handle suspended nodes correctly when detecting host components without allowMultipleHostChildren', () => {
- const EventComponent = createReactEventComponent({
- targetEventTypes: [],
- onEvent: () => {},
- allowMultipleHostChildren: false,
- });
-
- function SuspendedComponent() {
- throw Promise.resolve();
- }
-
- function Component() {
- return (
-
-
-
-
- );
- }
-
- const Test = () => (
-
- Loading...}>
-
-
-
- );
-
- ReactDOM.render(, container);
-
- function Component2() {
- return (
-
-
-
- );
- }
-
- const Test2 = () => (
-
-
-
-
-
- }>
-
-
-
- );
-
- expect(() => {
- ReactDOM.render(, container);
- }).toWarnDev(
- 'Warning: A "" event component cannot contain multiple host children.',
- );
- });
-
- it('should not warn if multiple host components are detected with allowMultipleHostChildren', () => {
- const EventComponent = createReactEventComponent({
- targetEventTypes: [],
- onEvent: () => {},
- allowMultipleHostChildren: true,
- });
-
- const Test = () => (
-
-
-
-
- );
-
- ReactDOM.render(, container);
-
- function Component() {
- return ;
- }
-
- const Test2 = () => (
-
-
-
-
- );
-
- ReactDOM.render(, container);
- });
-
it('should work with event component hooks', () => {
const buttonRef = React.createRef();
const eventLogs = [];
diff --git a/packages/react-events/src/dom/Drag.js b/packages/react-events/src/dom/Drag.js
index 7dc0d301b0..b1a3fefe49 100644
--- a/packages/react-events/src/dom/Drag.js
+++ b/packages/react-events/src/dom/Drag.js
@@ -98,8 +98,6 @@ const DragResponder: ReactDOMEventResponder = {
y: 0,
};
},
- allowMultipleHostChildren: false,
- allowEventHooks: false,
onEvent(
event: ReactDOMResponderEvent,
context: ReactDOMResponderContext,
diff --git a/packages/react-events/src/dom/Focus.js b/packages/react-events/src/dom/Focus.js
index f7b8661ff8..d73c2c7ee0 100644
--- a/packages/react-events/src/dom/Focus.js
+++ b/packages/react-events/src/dom/Focus.js
@@ -228,8 +228,6 @@ const FocusResponder: ReactDOMEventResponder = {
pointerType: '',
};
},
- allowMultipleHostChildren: false,
- allowEventHooks: true,
onEvent(
event: ReactDOMResponderEvent,
context: ReactDOMResponderContext,
diff --git a/packages/react-events/src/dom/FocusScope.js b/packages/react-events/src/dom/FocusScope.js
index 0d07639a23..8d2cf21623 100644
--- a/packages/react-events/src/dom/FocusScope.js
+++ b/packages/react-events/src/dom/FocusScope.js
@@ -56,8 +56,6 @@ const FocusScopeResponder: ReactDOMEventResponder = {
currentFocusedNode: null,
};
},
- allowMultipleHostChildren: true,
- allowEventHooks: false,
onEvent(
event: ReactDOMResponderEvent,
context: ReactDOMResponderContext,
diff --git a/packages/react-events/src/dom/Hover.js b/packages/react-events/src/dom/Hover.js
index 2afcdeb109..01d2bdd371 100644
--- a/packages/react-events/src/dom/Hover.js
+++ b/packages/react-events/src/dom/Hover.js
@@ -332,20 +332,18 @@ const HoverResponder: ReactDOMEventResponder = {
case 'pointermove':
case 'mousemove': {
if (state.isHovered && !isEmulatedMouseEvent(event, state)) {
- if (state.isHovered) {
- if (props.onHoverMove && state.hoverTarget !== null) {
- const syntheticEvent = createHoverEvent(
- event,
- context,
- 'hovermove',
- state.hoverTarget,
- );
- context.dispatchEvent(
- syntheticEvent,
- props.onHoverMove,
- UserBlockingEvent,
- );
- }
+ if (props.onHoverMove && state.hoverTarget !== null) {
+ const syntheticEvent = createHoverEvent(
+ event,
+ context,
+ 'hovermove',
+ state.hoverTarget,
+ );
+ context.dispatchEvent(
+ syntheticEvent,
+ props.onHoverMove,
+ UserBlockingEvent,
+ );
}
}
return;
diff --git a/packages/react-events/src/dom/Press.js b/packages/react-events/src/dom/Press.js
index 4f00373b26..6653ba1a09 100644
--- a/packages/react-events/src/dom/Press.js
+++ b/packages/react-events/src/dom/Press.js
@@ -649,8 +649,6 @@ const PressResponder: ReactDOMEventResponder = {
touchEvent: null,
};
},
- allowMultipleHostChildren: false,
- allowEventHooks: true,
onEvent(
event: ReactDOMResponderEvent,
context: ReactDOMResponderContext,
diff --git a/packages/react-events/src/dom/Scroll.js b/packages/react-events/src/dom/Scroll.js
index 756d2db4fc..275e74f971 100644
--- a/packages/react-events/src/dom/Scroll.js
+++ b/packages/react-events/src/dom/Scroll.js
@@ -141,8 +141,6 @@ const ScrollResponder: ReactDOMEventResponder = {
scrollTarget: null,
};
},
- allowMultipleHostChildren: true,
- allowEventHooks: true,
onEvent(
event: ReactDOMResponderEvent,
context: ReactDOMResponderContext,
diff --git a/packages/react-events/src/dom/Swipe.js b/packages/react-events/src/dom/Swipe.js
index f5d7ecf4b7..81e77afd99 100644
--- a/packages/react-events/src/dom/Swipe.js
+++ b/packages/react-events/src/dom/Swipe.js
@@ -104,8 +104,6 @@ const SwipeResponder: ReactDOMEventResponder = {
y: 0,
};
},
- allowMultipleHostChildren: false,
- allowEventHooks: false,
onEvent(
event: ReactDOMResponderEvent,
context: ReactDOMResponderContext,
diff --git a/packages/react-events/src/rn/Press.js b/packages/react-events/src/rn/Press.js
index 726c36300a..51dae4f0b0 100644
--- a/packages/react-events/src/rn/Press.js
+++ b/packages/react-events/src/rn/Press.js
@@ -502,8 +502,6 @@ function dispatchPressEndEvents(event, context, props, state): void {
const PressResponder: ReactNativeEventResponder = {
displayName: 'Press',
targetEventTypes,
- allowEventHooks: true,
- allowMultipleHostChildren: false,
getInitialState(): PressState {
return {
activationPosition: null,
diff --git a/packages/react-reconciler/src/ReactFiberCompleteWork.js b/packages/react-reconciler/src/ReactFiberCompleteWork.js
index d115261715..22df199a47 100644
--- a/packages/react-reconciler/src/ReactFiberCompleteWork.js
+++ b/packages/react-reconciler/src/ReactFiberCompleteWork.js
@@ -116,12 +116,7 @@ import {
renderDidSuspendDelayIfPossible,
renderHasNotSuspendedYet,
} from './ReactFiberWorkLoop';
-import {
- getEventComponentHostChildrenCount,
- createEventComponentInstance,
-} from './ReactFiberEvents';
-import getComponentName from 'shared/getComponentName';
-import warning from 'shared/warning';
+import {createEventComponentInstance} from './ReactFiberEvents';
import {Never} from './ReactFiberExpirationTime';
import {resetChildFibers} from './ReactChildFiber';
@@ -1131,16 +1126,6 @@ function completeWork(
if (eventComponentInstance === null) {
let responderState = null;
- if (__DEV__ && !responder.allowMultipleHostChildren) {
- const hostChildrenCount = getEventComponentHostChildrenCount(
- workInProgress,
- );
- warning(
- (hostChildrenCount || 0) < 2,
- 'A "<%s>" event component cannot contain multiple host children.',
- getComponentName(workInProgress.type),
- );
- }
const getInitialState = responder.getInitialState;
if (getInitialState !== undefined) {
responderState = getInitialState(newProps);
diff --git a/packages/react-reconciler/src/ReactFiberEvents.js b/packages/react-reconciler/src/ReactFiberEvents.js
index 98f60789a0..6b42f67e61 100644
--- a/packages/react-reconciler/src/ReactFiberEvents.js
+++ b/packages/react-reconciler/src/ReactFiberEvents.js
@@ -22,7 +22,6 @@ import {
Fragment,
} from 'shared/ReactWorkTags';
import {NoWork} from './ReactFiberExpirationTime';
-import invariant from 'shared/invariant';
let currentlyRenderingFiber: null | Fiber = null;
let currentEventComponentInstanceIndex: number = 0;
@@ -37,11 +36,6 @@ export function updateEventComponentInstance(
props: Object,
): void {
const responder = eventComponent.responder;
- invariant(
- responder.allowEventHooks,
- 'The "%s" event responder cannot be used via the "useEvent" hook.',
- responder.displayName,
- );
let events;
let dependencies: Dependencies | null = ((currentlyRenderingFiber: any): Fiber)
.dependencies;
diff --git a/packages/shared/ReactTypes.js b/packages/shared/ReactTypes.js
index ec6f83981d..d8ef40f361 100644
--- a/packages/shared/ReactTypes.js
+++ b/packages/shared/ReactTypes.js
@@ -95,8 +95,6 @@ export type ReactEventResponder = {
targetEventTypes?: Array,
rootEventTypes?: Array,
getInitialState?: (props: Object) => Object,
- allowMultipleHostChildren: boolean,
- allowEventHooks: boolean,
onEvent?: (event: E, context: C, props: Object, state: Object) => void,
onRootEvent?: (event: E, context: C, props: Object, state: Object) => void,
onMount?: (context: C, props: Object, state: Object) => void,