Skip to content

Commit 23b8a25

Browse files
authored
[Flare] Remove responder flags to simplify logic (facebook#16084)
1 parent 8533c0a commit 23b8a25

File tree

12 files changed

+13
-183
lines changed

12 files changed

+13
-183
lines changed

packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js

Lines changed: 0 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ function createReactEventComponent({
2626
onMount,
2727
onUnmount,
2828
onOwnershipChange,
29-
allowMultipleHostChildren,
30-
allowEventHooks,
3129
}) {
3230
const testEventResponder = {
3331
displayName: 'TestEventComponent',
@@ -39,8 +37,6 @@ function createReactEventComponent({
3937
onMount,
4038
onUnmount,
4139
onOwnershipChange,
42-
allowMultipleHostChildren: allowMultipleHostChildren || false,
43-
allowEventHooks: allowEventHooks || true,
4440
};
4541

4642
return React.unstable_createEvent(testEventResponder);
@@ -822,133 +818,6 @@ describe('DOMEventResponderSystem', () => {
822818
expect(container.innerHTML).toBe('<button>Click me!</button>');
823819
});
824820

825-
it('should warn if multiple host components are detected without allowMultipleHostChildren', () => {
826-
const EventComponent = createReactEventComponent({
827-
targetEventTypes: [],
828-
onEvent: () => {},
829-
allowMultipleHostChildren: false,
830-
});
831-
832-
const Test = () => (
833-
<EventComponent>
834-
<div />
835-
<div />
836-
</EventComponent>
837-
);
838-
839-
expect(() => {
840-
ReactDOM.render(<Test />, container);
841-
}).toWarnDev(
842-
'Warning: A "<TestEventComponent>" event component cannot contain multiple host children.',
843-
);
844-
845-
function Component() {
846-
return <div />;
847-
}
848-
849-
const Test2 = () => (
850-
<EventComponent>
851-
<div />
852-
<Component />
853-
</EventComponent>
854-
);
855-
856-
expect(() => {
857-
ReactDOM.render(<Test2 />, container);
858-
}).toWarnDev(
859-
'Warning: A "<TestEventComponent>" event component cannot contain multiple host children.',
860-
);
861-
});
862-
863-
it('should handle suspended nodes correctly when detecting host components without allowMultipleHostChildren', () => {
864-
const EventComponent = createReactEventComponent({
865-
targetEventTypes: [],
866-
onEvent: () => {},
867-
allowMultipleHostChildren: false,
868-
});
869-
870-
function SuspendedComponent() {
871-
throw Promise.resolve();
872-
}
873-
874-
function Component() {
875-
return (
876-
<React.Fragment>
877-
<div />
878-
<SuspendedComponent />
879-
</React.Fragment>
880-
);
881-
}
882-
883-
const Test = () => (
884-
<EventComponent>
885-
<React.Suspense fallback={<div>Loading...</div>}>
886-
<Component />
887-
</React.Suspense>
888-
</EventComponent>
889-
);
890-
891-
ReactDOM.render(<Test />, container);
892-
893-
function Component2() {
894-
return (
895-
<React.Fragment>
896-
<SuspendedComponent />
897-
</React.Fragment>
898-
);
899-
}
900-
901-
const Test2 = () => (
902-
<EventComponent>
903-
<React.Suspense
904-
fallback={
905-
<React.Fragment>
906-
<div />
907-
<div />
908-
</React.Fragment>
909-
}>
910-
<Component2 />
911-
</React.Suspense>
912-
</EventComponent>
913-
);
914-
915-
expect(() => {
916-
ReactDOM.render(<Test2 />, container);
917-
}).toWarnDev(
918-
'Warning: A "<TestEventComponent>" event component cannot contain multiple host children.',
919-
);
920-
});
921-
922-
it('should not warn if multiple host components are detected with allowMultipleHostChildren', () => {
923-
const EventComponent = createReactEventComponent({
924-
targetEventTypes: [],
925-
onEvent: () => {},
926-
allowMultipleHostChildren: true,
927-
});
928-
929-
const Test = () => (
930-
<EventComponent>
931-
<div />
932-
<div />
933-
</EventComponent>
934-
);
935-
936-
ReactDOM.render(<Test />, container);
937-
938-
function Component() {
939-
return <div />;
940-
}
941-
942-
const Test2 = () => (
943-
<EventComponent>
944-
<div />
945-
<Component />
946-
</EventComponent>
947-
);
948-
949-
ReactDOM.render(<Test2 />, container);
950-
});
951-
952821
it('should work with event component hooks', () => {
953822
const buttonRef = React.createRef();
954823
const eventLogs = [];

packages/react-events/src/dom/Drag.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,6 @@ const DragResponder: ReactDOMEventResponder = {
9898
y: 0,
9999
};
100100
},
101-
allowMultipleHostChildren: false,
102-
allowEventHooks: false,
103101
onEvent(
104102
event: ReactDOMResponderEvent,
105103
context: ReactDOMResponderContext,

packages/react-events/src/dom/Focus.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,6 @@ const FocusResponder: ReactDOMEventResponder = {
228228
pointerType: '',
229229
};
230230
},
231-
allowMultipleHostChildren: false,
232-
allowEventHooks: true,
233231
onEvent(
234232
event: ReactDOMResponderEvent,
235233
context: ReactDOMResponderContext,

packages/react-events/src/dom/FocusScope.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ const FocusScopeResponder: ReactDOMEventResponder = {
5656
currentFocusedNode: null,
5757
};
5858
},
59-
allowMultipleHostChildren: true,
60-
allowEventHooks: false,
6159
onEvent(
6260
event: ReactDOMResponderEvent,
6361
context: ReactDOMResponderContext,

packages/react-events/src/dom/Hover.js

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -332,20 +332,18 @@ const HoverResponder: ReactDOMEventResponder = {
332332
case 'pointermove':
333333
case 'mousemove': {
334334
if (state.isHovered && !isEmulatedMouseEvent(event, state)) {
335-
if (state.isHovered) {
336-
if (props.onHoverMove && state.hoverTarget !== null) {
337-
const syntheticEvent = createHoverEvent(
338-
event,
339-
context,
340-
'hovermove',
341-
state.hoverTarget,
342-
);
343-
context.dispatchEvent(
344-
syntheticEvent,
345-
props.onHoverMove,
346-
UserBlockingEvent,
347-
);
348-
}
335+
if (props.onHoverMove && state.hoverTarget !== null) {
336+
const syntheticEvent = createHoverEvent(
337+
event,
338+
context,
339+
'hovermove',
340+
state.hoverTarget,
341+
);
342+
context.dispatchEvent(
343+
syntheticEvent,
344+
props.onHoverMove,
345+
UserBlockingEvent,
346+
);
349347
}
350348
}
351349
return;

packages/react-events/src/dom/Press.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -649,8 +649,6 @@ const PressResponder: ReactDOMEventResponder = {
649649
touchEvent: null,
650650
};
651651
},
652-
allowMultipleHostChildren: false,
653-
allowEventHooks: true,
654652
onEvent(
655653
event: ReactDOMResponderEvent,
656654
context: ReactDOMResponderContext,

packages/react-events/src/dom/Scroll.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,6 @@ const ScrollResponder: ReactDOMEventResponder = {
141141
scrollTarget: null,
142142
};
143143
},
144-
allowMultipleHostChildren: true,
145-
allowEventHooks: true,
146144
onEvent(
147145
event: ReactDOMResponderEvent,
148146
context: ReactDOMResponderContext,

packages/react-events/src/dom/Swipe.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,6 @@ const SwipeResponder: ReactDOMEventResponder = {
104104
y: 0,
105105
};
106106
},
107-
allowMultipleHostChildren: false,
108-
allowEventHooks: false,
109107
onEvent(
110108
event: ReactDOMResponderEvent,
111109
context: ReactDOMResponderContext,

packages/react-events/src/rn/Press.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -502,8 +502,6 @@ function dispatchPressEndEvents(event, context, props, state): void {
502502
const PressResponder: ReactNativeEventResponder = {
503503
displayName: 'Press',
504504
targetEventTypes,
505-
allowEventHooks: true,
506-
allowMultipleHostChildren: false,
507505
getInitialState(): PressState {
508506
return {
509507
activationPosition: null,

packages/react-reconciler/src/ReactFiberCompleteWork.js

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -116,12 +116,7 @@ import {
116116
renderDidSuspendDelayIfPossible,
117117
renderHasNotSuspendedYet,
118118
} from './ReactFiberWorkLoop';
119-
import {
120-
getEventComponentHostChildrenCount,
121-
createEventComponentInstance,
122-
} from './ReactFiberEvents';
123-
import getComponentName from 'shared/getComponentName';
124-
import warning from 'shared/warning';
119+
import {createEventComponentInstance} from './ReactFiberEvents';
125120
import {Never} from './ReactFiberExpirationTime';
126121
import {resetChildFibers} from './ReactChildFiber';
127122

@@ -1131,16 +1126,6 @@ function completeWork(
11311126

11321127
if (eventComponentInstance === null) {
11331128
let responderState = null;
1134-
if (__DEV__ && !responder.allowMultipleHostChildren) {
1135-
const hostChildrenCount = getEventComponentHostChildrenCount(
1136-
workInProgress,
1137-
);
1138-
warning(
1139-
(hostChildrenCount || 0) < 2,
1140-
'A "<%s>" event component cannot contain multiple host children.',
1141-
getComponentName(workInProgress.type),
1142-
);
1143-
}
11441129
const getInitialState = responder.getInitialState;
11451130
if (getInitialState !== undefined) {
11461131
responderState = getInitialState(newProps);

0 commit comments

Comments
 (0)