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,