@samitouri / QOS-React / commits / 9fe1031244

[react-interactions] Rename Flare APIs to deprecated and remove from RN (#17644)

Dominic Gannaway committed Dec 18, 2019 at 10:24 UTC 9fe1031244903e442de179821f1d383a9f2a59f2
63 files changed +215 -1304
packages/legacy-events/ReactGenericBatching.js
+2 -2
@@ -10,7 +10,7 @@ import {
10 restoreStateIfNeeded,
11 } from './ReactControlledComponent';
12
13 -import {enableFlareAPI} from 'shared/ReactFeatureFlags';
13 +import {enableDeprecatedFlareAPI} from 'shared/ReactFeatureFlags';
14 import {invokeGuardedCallbackAndCatchFirstError} from 'shared/ReactErrorUtils';
15
16 // Used as a way to call batchedUpdates when we don't have a reference to
@@ -118,7 +118,7 @@ export function flushDiscreteUpdatesIfNeeded(timeStamp: number) {
118 // behaviour as we had before this change, so the risks are low.
119 if (
120 !isInsideEventHandler &&
121 - (!enableFlareAPI ||
121 + (!enableDeprecatedFlareAPI ||
122 (timeStamp === 0 || lastFlushedEventTimeStamp !== timeStamp))
123 ) {
124 lastFlushedEventTimeStamp = timeStamp;
packages/react-art/src/ReactARTHostConfig.js
+2 -2
@@ -426,7 +426,7 @@ export function unhideTextInstance(textInstance, text): void {
426 // Noop
427 }
428
429 -export function mountResponderInstance(
429 +export function DEPRECATED_mountResponderInstance(
430 responder: ReactEventResponder<any, any>,
431 responderInstance: ReactEventResponderInstance<any, any>,
432 props: Object,
@@ -436,7 +436,7 @@ export function mountResponderInstance(
436 throw new Error('Not yet implemented.');
437 }
438
439 -export function unmountResponderInstance(
439 +export function DEPRECATED_unmountResponderInstance(
440 responderInstance: ReactEventResponderInstance<any, any>,
441 ): void {
442 throw new Error('Not yet implemented.');
packages/react-debug-tools/src/__tests__/ReactHooksInspection-test.internal.js
+3 -3
@@ -17,16 +17,16 @@ describe('ReactHooksInspection', () => {
17 beforeEach(() => {
18 jest.resetModules();
19 const ReactFeatureFlags = require('shared/ReactFeatureFlags');
20 - ReactFeatureFlags.enableFlareAPI = true;
20 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
21 React = require('react');
22 ReactDebugTools = require('react-debug-tools');
23 });
24
25 it('should inspect a simple useResponder hook', () => {
26 - const TestResponder = React.unstable_createResponder('TestResponder', {});
26 + const TestResponder = React.DEPRECATED_createResponder('TestResponder', {});
27
28 function Foo(props) {
29 - const listener = React.unstable_useResponder(TestResponder, {
29 + const listener = React.DEPRECATED_useResponder(TestResponder, {
30 preventDefault: false,
31 });
32 return <div DEPRECATED_flareListeners={listener}>Hello world</div>;
packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js
+17 -11
@@ -76,7 +76,7 @@ describe('ReactDOMServerPartialHydration', () => {
76
77 ReactFeatureFlags = require('shared/ReactFeatureFlags');
78 ReactFeatureFlags.enableSuspenseCallback = true;
79 - ReactFeatureFlags.enableFlareAPI = true;
79 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
80 ReactFeatureFlags.debugRenderPhaseSideEffectsForStrictMode = false;
81
82 React = require('react');
@@ -1885,13 +1885,16 @@ describe('ReactDOMServerPartialHydration', () => {
1885 }
1886
1887 const onEvent = jest.fn();
1888 - const TestResponder = React.unstable_createResponder('TestEventResponder', {
1889 - targetEventTypes: ['click'],
1890 - onEvent,
1891 - });
1888 + const TestResponder = React.DEPRECATED_createResponder(
1889 + 'TestEventResponder',
1890 + {
1891 + targetEventTypes: ['click'],
1892 + onEvent,
1893 + },
1894 + );
1895
1896 function Button() {
1894 - let listener = React.unstable_useResponder(TestResponder, {});
1897 + let listener = React.DEPRECATED_useResponder(TestResponder, {});
1898 return <a DEPRECATED_flareListeners={listener}>Click me</a>;
1899 }
1900
@@ -2034,13 +2037,16 @@ describe('ReactDOMServerPartialHydration', () => {
2037 let promise = new Promise(resolvePromise => (resolve = resolvePromise));
2038
2039 const onEvent = jest.fn();
2037 - const TestResponder = React.unstable_createResponder('TestEventResponder', {
2038 - targetEventTypes: ['click'],
2039 - onEvent,
2040 - });
2040 + const TestResponder = React.DEPRECATED_createResponder(
2041 + 'TestEventResponder',
2042 + {
2043 + targetEventTypes: ['click'],
2044 + onEvent,
2045 + },
2046 + );
2047
2048 function Button() {
2043 - let listener = React.unstable_useResponder(TestResponder, {});
2049 + let listener = React.DEPRECATED_useResponder(TestResponder, {});
2050 return <a DEPRECATED_flareListeners={listener}>Click me</a>;
2051 }
2052
packages/react-dom/src/client/ReactDOMComponent.js
+8 -8
@@ -12,7 +12,7 @@ import {getCurrentFiberOwnerNameInDevOrNull} from 'react-reconciler/src/ReactCur
12 import {registrationNameModules} from 'legacy-events/EventPluginRegistry';
13 import {canUseDOM} from 'shared/ExecutionEnvironment';
14 import endsWith from 'shared/endsWith';
15 -import {setListenToResponderEventTypes} from '../events/DOMEventResponderSystem';
15 +import {setListenToResponderEventTypes} from '../events/DeprecatedDOMEventResponderSystem';
16
17 import {
18 getValueForAttribute,
@@ -88,7 +88,7 @@ import {validateProperties as validateUnknownProperties} from '../shared/ReactDO
88 import {toStringOrTrustedType} from './ToStringValue';
89
90 import {
91 - enableFlareAPI,
91 + enableDeprecatedFlareAPI,
92 enableTrustedTypesIntegration,
93 } from 'shared/ReactFeatureFlags';
94
@@ -342,7 +342,7 @@ function setInitialDOMProperties(
342 setTextContent(domElement, '' + nextProp);
343 }
344 } else if (
345 - (enableFlareAPI && propKey === DEPRECATED_flareListeners) ||
345 + (enableDeprecatedFlareAPI && propKey === DEPRECATED_flareListeners) ||
346 propKey === SUPPRESS_CONTENT_EDITABLE_WARNING ||
347 propKey === SUPPRESS_HYDRATION_WARNING
348 ) {
@@ -709,7 +709,7 @@ export function diffProperties(
709 } else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) {
710 // Noop. This is handled by the clear text mechanism.
711 } else if (
712 - (enableFlareAPI && propKey === DEPRECATED_flareListeners) ||
712 + (enableDeprecatedFlareAPI && propKey === DEPRECATED_flareListeners) ||
713 propKey === SUPPRESS_CONTENT_EDITABLE_WARNING ||
714 propKey === SUPPRESS_HYDRATION_WARNING
715 ) {
@@ -804,7 +804,7 @@ export function diffProperties(
804 (updatePayload = updatePayload || []).push(propKey, '' + nextProp);
805 }
806 } else if (
807 - (enableFlareAPI && propKey === DEPRECATED_flareListeners) ||
807 + (enableDeprecatedFlareAPI && propKey === DEPRECATED_flareListeners) ||
808 propKey === SUPPRESS_CONTENT_EDITABLE_WARNING ||
809 propKey === SUPPRESS_HYDRATION_WARNING
810 ) {
@@ -1058,7 +1058,7 @@ export function diffHydratedProperties(
1058 if (suppressHydrationWarning) {
1059 // Don't bother comparing. We're ignoring all these warnings.
1060 } else if (
1061 - (enableFlareAPI && propKey === DEPRECATED_flareListeners) ||
1061 + (enableDeprecatedFlareAPI && propKey === DEPRECATED_flareListeners) ||
1062 propKey === SUPPRESS_CONTENT_EDITABLE_WARNING ||
1063 propKey === SUPPRESS_HYDRATION_WARNING ||
1064 // Controlled attributes are not validated
@@ -1298,7 +1298,7 @@ export function listenToEventResponderEventTypes(
1298 eventTypes: Array<string>,
1299 document: Document,
1300 ): void {
1301 - if (enableFlareAPI) {
1301 + if (enableDeprecatedFlareAPI) {
1302 // Get the listening Map for this element. We use this to track
1303 // what events we're listening to.
1304 const listenerMap = getListenerMapForElement(document);
@@ -1346,6 +1346,6 @@ export function listenToEventResponderEventTypes(
1346 }
1347
1348 // We can remove this once the event API is stable and out of a flag
1349 -if (enableFlareAPI) {
1349 +if (enableDeprecatedFlareAPI) {
1350 setListenToResponderEventTypes(listenToEventResponderEventTypes);
1351 }
packages/react-dom/src/client/ReactDOMHostConfig.js
+10 -10
@@ -54,8 +54,8 @@ import type {
54 import {
55 mountEventResponder,
56 unmountEventResponder,
57 - dispatchEventForResponderEventSystem,
58 -} from '../events/DOMEventResponderSystem';
57 + DEPRECATED_dispatchEventForResponderEventSystem,
58 +} from '../events/DeprecatedDOMEventResponderSystem';
59 import {retryIfBlockedOn} from '../events/ReactDOMEventReplaying';
60
61 export type Type = string;
@@ -111,7 +111,7 @@ type SelectionInformation = {|
111
112 import {
113 enableSuspenseServerRenderer,
114 - enableFlareAPI,
114 + enableDeprecatedFlareAPI,
115 enableFundamentalAPI,
116 } from 'shared/ReactFeatureFlags';
117 import {
@@ -212,7 +212,7 @@ export function resetAfterCommit(containerInfo: Container): void {
212 restoreSelection(selectionInformation);
213 ReactBrowserEventEmitterSetEnabled(eventsEnabled);
214 eventsEnabled = null;
215 - if (enableFlareAPI) {
215 + if (enableDeprecatedFlareAPI) {
216 const activeElementDetached = (selectionInformation: any)
217 .activeElementDetached;
218 if (activeElementDetached !== null) {
@@ -468,7 +468,7 @@ function dispatchBeforeDetachedBlur(target: HTMLElement): void {
468 const targetInstance = getClosestInstanceFromNode(target);
469 ((selectionInformation: any): SelectionInformation).activeElementDetached = target;
470
471 - dispatchEventForResponderEventSystem(
471 + DEPRECATED_dispatchEventForResponderEventSystem(
472 'beforeblur',
473 targetInstance,
474 ({
@@ -481,7 +481,7 @@ function dispatchBeforeDetachedBlur(target: HTMLElement): void {
481 }
482
483 function dispatchDetachedBlur(target: HTMLElement): void {
484 - dispatchEventForResponderEventSystem(
484 + DEPRECATED_dispatchEventForResponderEventSystem(
485 'blur',
486 null,
487 ({
@@ -502,7 +502,7 @@ export function beforeRemoveInstance(
502 instance: Instance | TextInstance | SuspenseInstance,
503 ): void {
504 if (
505 - enableFlareAPI &&
505 + enableDeprecatedFlareAPI &&
506 selectionInformation &&
507 instance === selectionInformation.focusedElem
508 ) {
@@ -944,7 +944,7 @@ export function didNotFindHydratableSuspenseInstance(
944 }
945 }
946
947 -export function mountResponderInstance(
947 +export function DEPRECATED_mountResponderInstance(
948 responder: ReactDOMEventResponder,
949 responderInstance: ReactDOMEventResponderInstance,
950 responderProps: Object,
@@ -966,10 +966,10 @@ export function mountResponderInstance(
966 return responderInstance;
967 }
968
969 -export function unmountResponderInstance(
969 +export function DEPRECATED_unmountResponderInstance(
970 responderInstance: ReactDOMEventResponderInstance,
971 ): void {
972 - if (enableFlareAPI) {
972 + if (enableDeprecatedFlareAPI) {
973 // TODO stop listening to targetEventTypes
974 unmountEventResponder(responderInstance);
975 }
packages/react-dom/src/events/DeprecatedDOMEventResponderSystem.js renamed
+6 -6
@@ -29,7 +29,7 @@ import {
29 } from 'legacy-events/ReactGenericBatching';
30 import {enqueueStateRestore} from 'legacy-events/ReactControlledComponent';
31 import type {Fiber} from 'react-reconciler/src/ReactFiber';
32 -import {enableFlareAPI} from 'shared/ReactFeatureFlags';
32 +import {enableDeprecatedFlareAPI} from 'shared/ReactFeatureFlags';
33 import invariant from 'shared/invariant';
34
35 import {getClosestInstanceFromNode} from '../client/ReactDOMComponentTree';
@@ -164,7 +164,7 @@ const eventResponderContext: ReactDOMResponderContext = {
164 for (let i = 0; i < rootEventTypes.length; i++) {
165 const rootEventType = rootEventTypes[i];
166 const eventResponderInstance = ((currentInstance: any): ReactDOMEventResponderInstance);
167 - registerRootEventType(rootEventType, eventResponderInstance);
167 + DEPRECATED_registerRootEventType(rootEventType, eventResponderInstance);
168 }
169 },
170 removeRootEventTypes(rootEventTypes: Array<string>): void {
@@ -494,14 +494,14 @@ function validateResponderContext(): void {
494 );
495 }
496
497 -export function dispatchEventForResponderEventSystem(
497 +export function DEPRECATED_dispatchEventForResponderEventSystem(
498 topLevelType: string,
499 targetFiber: null | Fiber,
500 nativeEvent: AnyNativeEvent,
501 nativeEventTarget: Document | Element,
502 eventSystemFlags: EventSystemFlags,
503 ): void {
504 - if (enableFlareAPI) {
504 + if (enableDeprecatedFlareAPI) {
505 const previousInstance = currentInstance;
506 const previousTimeStamp = currentTimeStamp;
507 const previousDocument = currentDocument;
@@ -539,11 +539,11 @@ export function addRootEventTypesForResponderInstance(
539 ): void {
540 for (let i = 0; i < rootEventTypes.length; i++) {
541 const rootEventType = rootEventTypes[i];
542 - registerRootEventType(rootEventType, responderInstance);
542 + DEPRECATED_registerRootEventType(rootEventType, responderInstance);
543 }
544 }
545
546 -function registerRootEventType(
546 +function DEPRECATED_registerRootEventType(
547 rootEventType: string,
548 eventResponderInstance: ReactDOMEventResponderInstance,
549 ): void {
packages/react-dom/src/events/ReactDOMEventListener.js
+6 -6
@@ -23,7 +23,7 @@ import {
23 flushDiscreteUpdatesIfNeeded,
24 } from 'legacy-events/ReactGenericBatching';
25 import {runExtractedPluginEventsInBatch} from 'legacy-events/EventPluginHub';
26 -import {dispatchEventForResponderEventSystem} from './DOMEventResponderSystem';
26 +import {DEPRECATED_dispatchEventForResponderEventSystem} from './DeprecatedDOMEventResponderSystem';
27 import {
28 isReplayableDiscreteEvent,
29 queueDiscreteEvent,
@@ -63,7 +63,7 @@ import SimpleEventPlugin from './SimpleEventPlugin';
63 import {getRawEventName} from './DOMTopLevelEventTypes';
64 import {passiveBrowserEventsSupported} from './checkPassiveEvents';
65
66 -import {enableFlareAPI} from 'shared/ReactFeatureFlags';
66 +import {enableDeprecatedFlareAPI} from 'shared/ReactFeatureFlags';
67 import {
68 UserBlockingEvent,
69 ContinuousEvent,
@@ -403,7 +403,7 @@ export function dispatchEvent(
403
404 // This is not replayable so we'll invoke it but without a target,
405 // in case the event system needs to trace it.
406 - if (enableFlareAPI) {
406 + if (enableDeprecatedFlareAPI) {
407 if (eventSystemFlags & PLUGIN_EVENT_SYSTEM) {
408 dispatchEventForPluginEventSystem(
409 topLevelType,
@@ -414,7 +414,7 @@ export function dispatchEvent(
414 }
415 if (eventSystemFlags & RESPONDER_EVENT_SYSTEM) {
416 // React Flare event system
417 - dispatchEventForResponderEventSystem(
417 + DEPRECATED_dispatchEventForResponderEventSystem(
418 (topLevelType: any),
419 null,
420 nativeEvent,
@@ -481,7 +481,7 @@ export function attemptToDispatchEvent(
481 }
482 }
483
484 - if (enableFlareAPI) {
484 + if (enableDeprecatedFlareAPI) {
485 if (eventSystemFlags & PLUGIN_EVENT_SYSTEM) {
486 dispatchEventForPluginEventSystem(
487 topLevelType,
@@ -492,7 +492,7 @@ export function attemptToDispatchEvent(
492 }
493 if (eventSystemFlags & RESPONDER_EVENT_SYSTEM) {
494 // React Flare event system
495 - dispatchEventForResponderEventSystem(
495 + DEPRECATED_dispatchEventForResponderEventSystem(
496 (topLevelType: any),
497 targetInst,
498 nativeEvent,
packages/react-dom/src/events/ReactDOMEventReplaying.js
+2 -2
@@ -14,7 +14,7 @@ import type {EventSystemFlags} from 'legacy-events/EventSystemFlags';
14 import type {FiberRoot} from 'react-reconciler/src/ReactFiberRoot';
15
16 import {
17 - enableFlareAPI,
17 + enableDeprecatedFlareAPI,
18 enableSelectiveHydration,
19 } from 'shared/ReactFeatureFlags';
20 import {
@@ -217,7 +217,7 @@ function trapReplayableEvent(
217 listenerMap: Map<DOMTopLevelEventType | string, null | (any => void)>,
218 ) {
219 listenToTopLevel(topLevelType, document, listenerMap);
220 - if (enableFlareAPI) {
220 + if (enableDeprecatedFlareAPI) {
221 // Trap events for the responder system.
222 const topLevelTypeString = unsafeCastDOMTopLevelTypeToString(topLevelType);
223 const passiveEventKey = topLevelTypeString + '_passive';
packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js
+36 -32
@@ -29,7 +29,7 @@ function createEventResponder({
29 getInitialState,
30 targetPortalPropagation,
31 }) {
32 - return React.unstable_createResponder('TestEventResponder', {
32 + return React.DEPRECATED_createResponder('TestEventResponder', {
33 targetEventTypes,
34 onEvent,
35 onRootEvent,
@@ -69,7 +69,7 @@ describe('DOMEventResponderSystem', () => {
69 beforeEach(() => {
70 jest.resetModules();
71 ReactFeatureFlags = require('shared/ReactFeatureFlags');
72 - ReactFeatureFlags.enableFlareAPI = true;
72 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
73 ReactFeatureFlags.enableScopeAPI = true;
74 React = require('react');
75 ReactDOM = require('react-dom');
@@ -87,13 +87,13 @@ describe('DOMEventResponderSystem', () => {
87 it('can mount and render correctly with the ReactTestRenderer', () => {
88 jest.resetModules();
89 ReactFeatureFlags = require('shared/ReactFeatureFlags');
90 - ReactFeatureFlags.enableFlareAPI = true;
90 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
91 React = require('react');
92 ReactTestRenderer = require('react-test-renderer');
93 const TestResponder = createEventResponder({});
94
95 function Test() {
96 - const listener = React.unstable_useResponder(TestResponder, {});
96 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
97
98 return <div DEPRECATED_flareListeners={listener}>Hello world</div>;
99 }
@@ -105,7 +105,7 @@ describe('DOMEventResponderSystem', () => {
105 const TestResponder = createEventResponder({});
106
107 function Test() {
108 - const listener = React.unstable_useResponder(TestResponder, {});
108 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
109
110 return <div DEPRECATED_flareListeners={listener}>Hello world</div>;
111 }
@@ -122,7 +122,7 @@ describe('DOMEventResponderSystem', () => {
122 const ref = React.createRef();
123
124 function Test() {
125 - const listener = React.unstable_useResponder(TestResponder, {});
125 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
126
127 return (
128 <div>
@@ -160,7 +160,7 @@ describe('DOMEventResponderSystem', () => {
160 });
161
162 function Test() {
163 - const listener = React.unstable_useResponder(TestResponder, {});
163 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
164
165 return (
166 <button ref={buttonRef} DEPRECATED_flareListeners={listener}>
@@ -218,7 +218,7 @@ describe('DOMEventResponderSystem', () => {
218 });
219
220 function Test() {
221 - const listener = React.unstable_useResponder(TestResponder, {});
221 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
222
223 return (
224 <button ref={buttonRef} DEPRECATED_flareListeners={listener}>
@@ -260,8 +260,8 @@ describe('DOMEventResponderSystem', () => {
260 });
261
262 function Test() {
263 - const listener = React.unstable_useResponder(TestResponder, {});
264 - const listener2 = React.unstable_useResponder(TestResponder, {});
263 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
264 + const listener2 = React.DEPRECATED_useResponder(TestResponder, {});
265
266 return (
267 <button
@@ -296,7 +296,7 @@ describe('DOMEventResponderSystem', () => {
296 eventLog = [];
297
298 function Test2() {
299 - const listener = React.unstable_useResponder(TestResponder, {});
299 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
300
301 return (
302 <div DEPRECATED_flareListeners={listener}>
@@ -343,8 +343,8 @@ describe('DOMEventResponderSystem', () => {
343 });
344
345 function Test() {
346 - const listener = React.unstable_useResponder(TestResponderA, {});
347 - const listener2 = React.unstable_useResponder(TestResponderB, {});
346 + const listener = React.DEPRECATED_useResponder(TestResponderA, {});
347 + const listener2 = React.DEPRECATED_useResponder(TestResponderB, {});
348
349 return (
350 <button
@@ -366,8 +366,8 @@ describe('DOMEventResponderSystem', () => {
366 eventLog = [];
367
368 function Test2() {
369 - const listener = React.unstable_useResponder(TestResponderA, {});
370 - const listener2 = React.unstable_useResponder(TestResponderB, {});
369 + const listener = React.DEPRECATED_useResponder(TestResponderA, {});
370 + const listener2 = React.DEPRECATED_useResponder(TestResponderB, {});
371
372 return (
373 <div DEPRECATED_flareListeners={listener}>
@@ -399,8 +399,12 @@ describe('DOMEventResponderSystem', () => {
399 });
400
401 const Test = () => {
402 - const listener = React.unstable_useResponder(TestResponder, {name: 'A'});
403 - const listener2 = React.unstable_useResponder(TestResponder, {name: 'B'});
402 + const listener = React.DEPRECATED_useResponder(TestResponder, {
403 + name: 'A',
404 + });
405 + const listener2 = React.DEPRECATED_useResponder(TestResponder, {
406 + name: 'B',
407 + });
408 return (
409 <div DEPRECATED_flareListeners={listener}>
410 <button ref={buttonRef} DEPRECATED_flareListeners={listener2}>
@@ -445,7 +449,7 @@ describe('DOMEventResponderSystem', () => {
449 }
450
451 const Test = () => {
448 - const listener = React.unstable_useResponder(TestResponder, {
452 + const listener = React.DEPRECATED_useResponder(TestResponder, {
453 onMagicClick: handleMagicEvent,
454 });
455
@@ -483,8 +487,8 @@ describe('DOMEventResponderSystem', () => {
487 });
488
489 function Test({toggle}) {
486 - const listener = React.unstable_useResponder(TestResponder, {});
487 - const listener2 = React.unstable_useResponder(TestResponder2, {});
490 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
491 + const listener2 = React.DEPRECATED_useResponder(TestResponder2, {});
492 if (toggle) {
493 return <button DEPRECATED_flareListeners={[listener2, listener]} />;
494 }
@@ -509,7 +513,7 @@ describe('DOMEventResponderSystem', () => {
513 });
514
515 function Test({test}) {
512 - const listener = React.unstable_useResponder(TestResponder, {});
516 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
517 if (test === 0) {
518 return <button DEPRECATED_flareListeners={[listener]} />;
519 } else if (test === 1) {
@@ -556,7 +560,7 @@ describe('DOMEventResponderSystem', () => {
560 });
561
562 function Test({test}) {
559 - const listener = React.unstable_useResponder(TestResponder, {});
563 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
564 if (test === 0) {
565 return <TestScope DEPRECATED_flareListeners={[listener]} />;
566 } else if (test === 1) {
@@ -605,7 +609,7 @@ describe('DOMEventResponderSystem', () => {
609 });
610
611 const Test = () => {
608 - const listener = React.unstable_useResponder(TestResponder, {});
612 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
613 return <button DEPRECATED_flareListeners={listener} />;
614 };
615
@@ -643,8 +647,8 @@ describe('DOMEventResponderSystem', () => {
647 });
648
649 const Test = () => {
646 - const listener = React.unstable_useResponder(TestResponderA, {});
647 - const listener2 = React.unstable_useResponder(TestResponderB, {});
650 + const listener = React.DEPRECATED_useResponder(TestResponderA, {});
651 + const listener2 = React.DEPRECATED_useResponder(TestResponderB, {});
652
653 return (
654 <div DEPRECATED_flareListeners={listener}>
@@ -691,7 +695,7 @@ describe('DOMEventResponderSystem', () => {
695 let handler;
696 let buttonRef = React.createRef();
697 const Test = () => {
694 - const listener = React.unstable_useResponder(TestResponder, {
698 + const listener = React.DEPRECATED_useResponder(TestResponder, {
699 onClick: handler,
700 });
701
@@ -756,7 +760,7 @@ describe('DOMEventResponderSystem', () => {
760 });
761
762 const Test = () => {
759 - const listener = React.unstable_useResponder(TestResponder, {
763 + const listener = React.DEPRECATED_useResponder(TestResponder, {
764 onFoo: e => eventLogs.push('hook'),
765 });
766
@@ -771,7 +775,7 @@ describe('DOMEventResponderSystem', () => {
775 eventLogs.length = 0;
776
777 const Test2 = () => {
774 - const listener = React.unstable_useResponder(TestResponder, {
778 + const listener = React.DEPRECATED_useResponder(TestResponder, {
779 onFoo: e => eventLogs.push('hook'),
780 });
781
@@ -793,7 +797,7 @@ describe('DOMEventResponderSystem', () => {
797 const ref = React.createRef();
798
799 function Test({counter}) {
796 - const listener = React.unstable_useResponder(TestResponder, {counter});
800 + const listener = React.DEPRECATED_useResponder(TestResponder, {counter});
801 Scheduler.unstable_yieldValue('Test');
802 return (
803 <button DEPRECATED_flareListeners={listener} ref={ref}>
@@ -861,7 +865,7 @@ describe('DOMEventResponderSystem', () => {
865 });
866
867 const Component = () => {
864 - const listener = React.unstable_useResponder(TestResponder, {
868 + const listener = React.DEPRECATED_useResponder(TestResponder, {
869 onClick: logEvent,
870 });
871 return <button ref={ref} DEPRECATED_flareListeners={listener} />;
@@ -905,7 +909,7 @@ describe('DOMEventResponderSystem', () => {
909 const domNode = document.createElement('div');
910 document.body.appendChild(domNode);
911 const Component = () => {
908 - const listener = React.unstable_useResponder(TestResponder, {});
912 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
913 return (
914 <div DEPRECATED_flareListeners={listener}>
915 {ReactDOM.createPortal(<button ref={buttonRef} />, domNode)}
@@ -929,7 +933,7 @@ describe('DOMEventResponderSystem', () => {
933 const domNode = document.createElement('div');
934 document.body.appendChild(domNode);
935 const Component = () => {
932 - const listener = React.unstable_useResponder(TestResponder, {});
936 + const listener = React.DEPRECATED_useResponder(TestResponder, {});
937 return (
938 <div DEPRECATED_flareListeners={listener}>
939 {ReactDOM.createPortal(<button ref={buttonRef} />, domNode)}
packages/react-dom/src/events/checkPassiveEvents.js
+2 -2
@@ -8,13 +8,13 @@
8 */
9
10 import {canUseDOM} from 'shared/ExecutionEnvironment';
11 -import {enableFlareAPI} from 'shared/ReactFeatureFlags';
11 +import {enableDeprecatedFlareAPI} from 'shared/ReactFeatureFlags';
12
13 export let passiveBrowserEventsSupported = false;
14
15 // Check if browser support events with passive listeners
16 // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support
17 -if (enableFlareAPI && canUseDOM) {
17 +if (enableDeprecatedFlareAPI && canUseDOM) {
18 try {
19 const options = {};
20 // $FlowFixMe: Ignore Flow complaining about needing a value
packages/react-dom/src/server/ReactPartialRenderer.js
+2 -2
@@ -28,7 +28,7 @@ import {
28 disableLegacyContext,
29 enableSuspenseServerRenderer,
30 enableFundamentalAPI,
31 - enableFlareAPI,
31 + enableDeprecatedFlareAPI,
32 enableScopeAPI,
33 } from 'shared/ReactFeatureFlags';
34
@@ -365,7 +365,7 @@ function createOpenTagMarkup(
365 if (!hasOwnProperty.call(props, propKey)) {
366 continue;
367 }
368 - if (enableFlareAPI && propKey === 'DEPRECATED_flareListeners') {
368 + if (enableDeprecatedFlareAPI && propKey === 'DEPRECATED_flareListeners') {
369 continue;
370 }
371 let propValue = props[propKey];
packages/react-dom/src/shared/DOMProperty.js
+2 -2
@@ -7,7 +7,7 @@
7 * @flow
8 */
9
10 -import {enableFlareAPI} from 'shared/ReactFeatureFlags';
10 +import {enableDeprecatedFlareAPI} from 'shared/ReactFeatureFlags';
11
12 type PropertyType = 0 | 1 | 2 | 3 | 4 | 5 | 6;
13
@@ -220,7 +220,7 @@ const reservedProps = [
220 'suppressHydrationWarning',
221 'style',
222 ];
223 -if (enableFlareAPI) {
223 +if (enableDeprecatedFlareAPI) {
224 reservedProps.push('DEPRECATED_flareListeners');
225 }
226
packages/react-dom/src/shared/ReactControlledValuePropTypes.js
+3 -3
@@ -7,7 +7,7 @@
7
8 import checkPropTypes from 'prop-types/checkPropTypes';
9 import ReactSharedInternals from 'shared/ReactSharedInternals';
10 -import {enableFlareAPI} from 'shared/ReactFeatureFlags';
10 +import {enableDeprecatedFlareAPI} from 'shared/ReactFeatureFlags';
11
12 let ReactDebugCurrentFrame = null;
13
@@ -36,7 +36,7 @@ if (__DEV__) {
36 props.readOnly ||
37 props.disabled ||
38 props[propName] == null ||
39 - (enableFlareAPI && props.DEPRECATED_flareListeners)
39 + (enableDeprecatedFlareAPI && props.DEPRECATED_flareListeners)
40 ) {
41 return null;
42 }
@@ -53,7 +53,7 @@ if (__DEV__) {
53 props.readOnly ||
54 props.disabled ||
55 props[propName] == null ||
56 - (enableFlareAPI && props.DEPRECATED_flareListeners)
56 + (enableDeprecatedFlareAPI && props.DEPRECATED_flareListeners)
57 ) {
58 return null;
59 }
packages/react-interactions/accessibility/src/__tests__/FocusContain-test.internal.js
+1 -1
@@ -19,7 +19,7 @@ describe('FocusContain', () => {
19 jest.resetModules();
20 ReactFeatureFlags = require('shared/ReactFeatureFlags');
21 ReactFeatureFlags.enableScopeAPI = true;
22 - ReactFeatureFlags.enableFlareAPI = true;
22 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
23 FocusContain = require('../FocusContain').default;
24 tabbableScopeQuery = require('../TabbableScopeQuery').default;
25 React = require('react');
packages/react-interactions/accessibility/src/__tests__/FocusGroup-test.internal.js
+1 -1
@@ -20,7 +20,7 @@ describe('FocusGroup', () => {
20 jest.resetModules();
21 ReactFeatureFlags = require('shared/ReactFeatureFlags');
22 ReactFeatureFlags.enableScopeAPI = true;
23 - ReactFeatureFlags.enableFlareAPI = true;
23 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
24 createFocusGroup = require('../FocusGroup').createFocusGroup;
25 tabbableScopeQuery = require('../TabbableScopeQuery').default;
26 React = require('react');
packages/react-interactions/accessibility/src/__tests__/FocusManager-test.internal.js
+1 -1
@@ -17,7 +17,7 @@ describe('FocusManager', () => {
17 jest.resetModules();
18 ReactFeatureFlags = require('shared/ReactFeatureFlags');
19 ReactFeatureFlags.enableScopeAPI = true;
20 - ReactFeatureFlags.enableFlareAPI = true;
20 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
21 FocusManager = require('../FocusManager');
22 tabbableScopeQuery = require('../TabbableScopeQuery').default;
23 React = require('react');
packages/react-interactions/accessibility/src/__tests__/FocusTable-test.internal.js
+1 -1
@@ -20,7 +20,7 @@ describe('FocusTable', () => {
20 jest.resetModules();
21 ReactFeatureFlags = require('shared/ReactFeatureFlags');
22 ReactFeatureFlags.enableScopeAPI = true;
23 - ReactFeatureFlags.enableFlareAPI = true;
23 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
24 createFocusTable = require('../FocusTable').createFocusTable;
25 tabbableScopeQuery = require('../TabbableScopeQuery').default;
26 React = require('react');
packages/react-interactions/events/README.md
+1 -1
@@ -12,7 +12,7 @@ can be found [here](./docs).
12
13 ## Event Responder Interface
14
15 -Note: React Responders require the internal React flag `enableFlareAPI`.
15 +Note: React Responders require the internal React flag `enableDeprecatedFlareAPI`.
16
17 An Event Responder Interface is defined using an object. Each responder can define DOM
18 events to listen to, handle the synthetic responder events, dispatch custom
packages/react-interactions/events/src/dom/ContextMenu.js
+2 -2
@@ -115,7 +115,7 @@ const contextMenuImpl = {
115 },
116 };
117
118 -export const ContextMenuResponder = React.unstable_createResponder(
118 +export const ContextMenuResponder = React.DEPRECATED_createResponder(
119 'ContextMenu',
120 contextMenuImpl,
121 );
@@ -123,5 +123,5 @@ export const ContextMenuResponder = React.unstable_createResponder(
123 export function useContextMenu(
124 props: ContextMenuProps,
125 ): ReactEventResponderListener<any, any> {
126 - return React.unstable_useResponder(ContextMenuResponder, props);
126 + return React.DEPRECATED_useResponder(ContextMenuResponder, props);
127 }
packages/react-interactions/events/src/dom/Drag.js
+2 -2
@@ -239,7 +239,7 @@ const dragResponderImpl = {
239 },
240 };
241
242 -export const DragResponder = React.unstable_createResponder(
242 +export const DragResponder = React.DEPRECATED_createResponder(
243 'Drag',
244 dragResponderImpl,
245 );
@@ -247,5 +247,5 @@ export const DragResponder = React.unstable_createResponder(
247 export function useDrag(
248 props: DragProps,
249 ): ReactEventResponderListener<any, any> {
250 - return React.unstable_useResponder(DragResponder, props);
250 + return React.DEPRECATED_useResponder(DragResponder, props);
251 }
packages/react-interactions/events/src/dom/Focus.js
+4 -4
@@ -490,7 +490,7 @@ const focusResponderImpl = {
490 },
491 };
492
493 -export const FocusResponder = React.unstable_createResponder(
493 +export const FocusResponder = React.DEPRECATED_createResponder(
494 'Focus',
495 focusResponderImpl,
496 );
@@ -498,7 +498,7 @@ export const FocusResponder = React.unstable_createResponder(
498 export function useFocus(
499 props: FocusProps,
500 ): ReactEventResponderListener<any, any> {
501 - return React.unstable_useResponder(FocusResponder, props);
501 + return React.DEPRECATED_useResponder(FocusResponder, props);
502 }
503
504 /**
@@ -670,7 +670,7 @@ const focusWithinResponderImpl = {
670 },
671 };
672
673 -export const FocusWithinResponder = React.unstable_createResponder(
673 +export const FocusWithinResponder = React.DEPRECATED_createResponder(
674 'FocusWithin',
675 focusWithinResponderImpl,
676 );
@@ -678,5 +678,5 @@ export const FocusWithinResponder = React.unstable_createResponder(
678 export function useFocusWithin(
679 props: FocusWithinProps,
680 ): ReactEventResponderListener<any, any> {
681 - return React.unstable_useResponder(FocusWithinResponder, props);
681 + return React.DEPRECATED_useResponder(FocusWithinResponder, props);
682 }
packages/react-interactions/events/src/dom/Hover.js
+2 -2
@@ -336,7 +336,7 @@ const hoverResponderFallbackImpl = {
336 onUnmount: unmountResponder,
337 };
338
339 -export const HoverResponder = React.unstable_createResponder(
339 +export const HoverResponder = React.DEPRECATED_createResponder(
340 'Hover',
341 hasPointerEvents ? hoverResponderImpl : hoverResponderFallbackImpl,
342 );
@@ -344,5 +344,5 @@ export const HoverResponder = React.unstable_createResponder(
344 export function useHover(
345 props: HoverProps,
346 ): ReactEventResponderListener<any, any> {
347 - return React.unstable_useResponder(HoverResponder, props);
347 + return React.DEPRECATED_useResponder(HoverResponder, props);
348 }
packages/react-interactions/events/src/dom/Input.js
+2 -2
@@ -211,7 +211,7 @@ const inputResponderImpl = {
211 },
212 };
213
214 -export const InputResponder = React.unstable_createResponder(
214 +export const InputResponder = React.DEPRECATED_createResponder(
215 'Input',
216 inputResponderImpl,
217 );
@@ -219,5 +219,5 @@ export const InputResponder = React.unstable_createResponder(
219 export function useInput(
220 props: InputResponderProps,
221 ): ReactEventResponderListener<any, any> {
222 - return React.unstable_useResponder(InputResponder, props);
222 + return React.DEPRECATED_useResponder(InputResponder, props);
223 }
packages/react-interactions/events/src/dom/Keyboard.js
+2 -2
@@ -229,7 +229,7 @@ const keyboardResponderImpl = {
229 },
230 };
231
232 -export const KeyboardResponder = React.unstable_createResponder(
232 +export const KeyboardResponder = React.DEPRECATED_createResponder(
233 'Keyboard',
234 keyboardResponderImpl,
235 );
@@ -237,5 +237,5 @@ export const KeyboardResponder = React.unstable_createResponder(
237 export function useKeyboard(
238 props: KeyboardProps,
239 ): ReactEventResponderListener<any, any> {
240 - return React.unstable_useResponder(KeyboardResponder, props);
240 + return React.DEPRECATED_useResponder(KeyboardResponder, props);
241 }
packages/react-interactions/events/src/dom/PressLegacy.js
+2 -2
@@ -886,7 +886,7 @@ const pressResponderImpl = {
886 },
887 };
888
889 -export const PressResponder = React.unstable_createResponder(
889 +export const PressResponder = React.DEPRECATED_createResponder(
890 'Press',
891 pressResponderImpl,
892 );
@@ -894,5 +894,5 @@ export const PressResponder = React.unstable_createResponder(
894 export function usePress(
895 props: PressProps,
896 ): ReactEventResponderListener<any, any> {
897 - return React.unstable_useResponder(PressResponder, props);
897 + return React.DEPRECATED_useResponder(PressResponder, props);
898 }
packages/react-interactions/events/src/dom/Scroll.js
+2 -2
@@ -305,7 +305,7 @@ const scrollResponderImpl = {
305 },
306 };
307
308 -export const ScrollResponder = React.unstable_createResponder(
308 +export const ScrollResponder = React.DEPRECATED_createResponder(
309 'Scroll',
310 scrollResponderImpl,
311 );
@@ -313,5 +313,5 @@ export const ScrollResponder = React.unstable_createResponder(
313 export function useScroll(
314 props: ScrollProps,
315 ): ReactEventResponderListener<any, any> {
316 - return React.unstable_useResponder(ScrollResponder, props);
316 + return React.DEPRECATED_useResponder(ScrollResponder, props);
317 }
packages/react-interactions/events/src/dom/Swipe.js
+2 -2
@@ -276,7 +276,7 @@ const swipeResponderImpl = {
276 },
277 };
278
279 -export const SwipeResponder = React.unstable_createResponder(
279 +export const SwipeResponder = React.DEPRECATED_createResponder(
280 'Swipe',
281 swipeResponderImpl,
282 );
@@ -284,5 +284,5 @@ export const SwipeResponder = React.unstable_createResponder(
284 export function useSwipe(
285 props: SwipeProps,
286 ): ReactEventResponderListener<any, any> {
287 - return React.unstable_useResponder(SwipeResponder, props);
287 + return React.DEPRECATED_useResponder(SwipeResponder, props);
288 }
packages/react-interactions/events/src/dom/Tap.js
+2 -2
@@ -712,11 +712,11 @@ const responderImpl = {
712 },
713 };
714
715 -export const TapResponder = React.unstable_createResponder(
715 +export const TapResponder = React.DEPRECATED_createResponder(
716 'Tap',
717 responderImpl,
718 );
719
720 export function useTap(props: TapProps): ReactEventResponderListener<any, any> {
721 - return React.unstable_useResponder(TapResponder, props);
721 + return React.DEPRECATED_useResponder(TapResponder, props);
722 }
packages/react-interactions/events/src/dom/__tests__/ContextMenu-test.internal.js
+1 -1
@@ -25,7 +25,7 @@ function initializeModules(hasPointerEvents) {
25 setPointerEvent(hasPointerEvents);
26 jest.resetModules();
27 ReactFeatureFlags = require('shared/ReactFeatureFlags');
28 - ReactFeatureFlags.enableFlareAPI = true;
28 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
29 React = require('react');
30 ReactDOM = require('react-dom');
31 useContextMenu = require('react-interactions/events/context-menu')
packages/react-interactions/events/src/dom/__tests__/Drag-test.internal.js
+1 -1
@@ -20,7 +20,7 @@ describe('Drag event responder', () => {
20 beforeEach(() => {
21 jest.resetModules();
22 ReactFeatureFlags = require('shared/ReactFeatureFlags');
23 - ReactFeatureFlags.enableFlareAPI = true;
23 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
24 React = require('react');
25 ReactDOM = require('react-dom');
26 useDrag = require('react-interactions/events/drag').useDrag;
packages/react-interactions/events/src/dom/__tests__/Focus-test.internal.js
+1 -1
@@ -21,7 +21,7 @@ function initializeModules(hasPointerEvents) {
21 setPointerEvent(hasPointerEvents);
22 jest.resetModules();
23 ReactFeatureFlags = require('shared/ReactFeatureFlags');
24 - ReactFeatureFlags.enableFlareAPI = true;
24 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
25 React = require('react');
26 ReactDOM = require('react-dom');
27 FocusResponder = require('react-interactions/events/focus').FocusResponder;
packages/react-interactions/events/src/dom/__tests__/FocusWithin-test.internal.js
+1 -1
@@ -21,7 +21,7 @@ const initializeModules = hasPointerEvents => {
21 setPointerEvent(hasPointerEvents);
22 jest.resetModules();
23 ReactFeatureFlags = require('shared/ReactFeatureFlags');
24 - ReactFeatureFlags.enableFlareAPI = true;
24 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
25 React = require('react');
26 ReactDOM = require('react-dom');
27 FocusWithinResponder = require('react-interactions/events/focus')
packages/react-interactions/events/src/dom/__tests__/Hover-test.internal.js
+1 -1
@@ -21,7 +21,7 @@ function initializeModules(hasPointerEvents) {
21 jest.resetModules();
22 setPointerEvent(hasPointerEvents);
23 ReactFeatureFlags = require('shared/ReactFeatureFlags');
24 - ReactFeatureFlags.enableFlareAPI = true;
24 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
25 React = require('react');
26 ReactDOM = require('react-dom');
27 HoverResponder = require('react-interactions/events/hover').HoverResponder;
packages/react-interactions/events/src/dom/__tests__/Input-test.internal.js
+1 -1
@@ -33,7 +33,7 @@ const setUntrackedTextareaValue = Object.getOwnPropertyDescriptor(
33
34 const modulesInit = () => {
35 ReactFeatureFlags = require('shared/ReactFeatureFlags');
36 - ReactFeatureFlags.enableFlareAPI = true;
36 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
37 ReactFeatureFlags.debugRenderPhaseSideEffectsForStrictMode = false;
38 React = require('react');
39 ReactDOM = require('react-dom');
packages/react-interactions/events/src/dom/__tests__/Keyboard-test.internal.js
+1 -1
@@ -19,7 +19,7 @@ import {createEventTarget} from '../testing-library';
19 function initializeModules(hasPointerEvents) {
20 jest.resetModules();
21 ReactFeatureFlags = require('shared/ReactFeatureFlags');
22 - ReactFeatureFlags.enableFlareAPI = true;
22 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
23 React = require('react');
24 ReactDOM = require('react-dom');
25 useKeyboard = require('react-interactions/events/keyboard').useKeyboard;
packages/react-interactions/events/src/dom/__tests__/MixedResponders-test-internal.js
+1 -1
@@ -21,7 +21,7 @@ describe('mixing responders with the heritage event system', () => {
21
22 beforeEach(() => {
23 ReactFeatureFlags = require('shared/ReactFeatureFlags');
24 - ReactFeatureFlags.enableFlareAPI = true;
24 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
25 React = require('react');
26 ReactDOM = require('react-dom');
27 Scheduler = require('scheduler');
packages/react-interactions/events/src/dom/__tests__/Press-test.internal.js
+1 -1
@@ -26,7 +26,7 @@ function initializeModules(hasPointerEvents) {
26 jest.resetModules();
27 setPointerEvent(hasPointerEvents);
28 ReactFeatureFlags = require('shared/ReactFeatureFlags');
29 - ReactFeatureFlags.enableFlareAPI = true;
29 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
30 React = require('react');
31 ReactDOM = require('react-dom');
32 usePress = require('react-interactions/events/press').usePress;
packages/react-interactions/events/src/dom/__tests__/PressLegacy-test.internal.js
+1 -1
@@ -26,7 +26,7 @@ function initializeModules(hasPointerEvents) {
26 jest.resetModules();
27 setPointerEvent(hasPointerEvents);
28 ReactFeatureFlags = require('shared/ReactFeatureFlags');
29 - ReactFeatureFlags.enableFlareAPI = true;
29 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
30 React = require('react');
31 ReactDOM = require('react-dom');
32 PressResponder = require('react-interactions/events/press-legacy')
packages/react-interactions/events/src/dom/__tests__/Scroll-test.internal.js
+1 -1
@@ -23,7 +23,7 @@ const initializeModules = hasPointerEvents => {
23 setPointerEvent(hasPointerEvents);
24 jest.resetModules();
25 ReactFeatureFlags = require('shared/ReactFeatureFlags');
26 - ReactFeatureFlags.enableFlareAPI = true;
26 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
27 React = require('react');
28 ReactDOM = require('react-dom');
29 useScroll = require('react-interactions/events/scroll').useScroll;
packages/react-interactions/events/src/dom/__tests__/Tap-test.internal.js
+1 -1
@@ -27,7 +27,7 @@ function initializeModules(hasPointerEvents) {
27 jest.resetModules();
28 setPointerEvent(hasPointerEvents);
29 ReactFeatureFlags = require('shared/ReactFeatureFlags');
30 - ReactFeatureFlags.enableFlareAPI = true;
30 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
31 React = require('react');
32 ReactDOM = require('react-dom');
33 useTap = require('react-interactions/events/tap').useTap;
packages/react-interactions/events/src/rn/Press.js deleted
-540
@@ -1,540 +0,0 @@
1 -/**
2 - * Copyright (c) Facebook, Inc. and its affiliates.
3 - *
4 - * This source code is licensed under the MIT license found in the
5 - * LICENSE file in the root directory of this source tree.
6 - *
7 - * @flow
8 - */
9 -
10 -import type {
11 - ReactNativeResponderEvent,
12 - ReactNativeResponderContext,
13 - ReactNativeEventTarget,
14 - PointerType,
15 - ReactFaricEventTouch,
16 - EventPriority,
17 -} from 'react-native-renderer/src/ReactNativeTypes';
18 -import React from 'react';
19 -import {
20 - DiscreteEvent,
21 - UserBlockingEvent,
22 -} from 'react-native-renderer/src/ReactNativeTypes';
23 -import type {ReactEventResponderListener} from 'shared/ReactTypes';
24 -
25 -type PressProps = {
26 - disabled: boolean,
27 - pressRetentionOffset: {
28 - top: number,
29 - right: number,
30 - bottom: number,
31 - left: number,
32 - },
33 - onPress: (e: PressEvent) => void,
34 - onPressChange: boolean => void,
35 - onPressEnd: (e: PressEvent) => void,
36 - onPressMove: (e: PressEvent) => void,
37 - onPressStart: (e: PressEvent) => void,
38 -};
39 -
40 -type PressEvent = {|
41 - target: ReactNativeEventTarget,
42 - type: PressEventType,
43 - pointerType: PointerType,
44 - timeStamp: number,
45 - locationX: null | number,
46 - locationY: null | number,
47 - pageX: null | number,
48 - pageY: null | number,
49 - screenX: null | number,
50 - screenY: null | number,
51 - force: null | number,
52 -|};
53 -
54 -type PressState = {
55 - activationPosition: null | $ReadOnly<{|
56 - x: number,
57 - y: number,
58 - |}>,
59 - addedRootEvents: boolean,
60 - isActivePressed: boolean,
61 - isActivePressStart: boolean,
62 - isPressed: boolean,
63 - isPressWithinResponderRegion: boolean,
64 - pointerType: PointerType,
65 - pressTarget: null | ReactNativeEventTarget,
66 - responderRegionOnActivation: null | $ReadOnly<{|
67 - bottom: number,
68 - left: number,
69 - right: number,
70 - top: number,
71 - |}>,
72 - responderRegionOnDeactivation: null | $ReadOnly<{|
73 - bottom: number,
74 - left: number,
75 - right: number,
76 - top: number,
77 - |}>,
78 - activePointerId: null | number,
79 - touchEvent: null | ReactFaricEventTouch,
80 -};
81 -
82 -type PressEventType =
83 - | 'press'
84 - | 'pressmove'
85 - | 'pressstart'
86 - | 'pressend'
87 - | 'presschange';
88 -
89 -const DEFAULT_PRESS_RETENTION_OFFSET = {
90 - bottom: 20,
91 - top: 20,
92 - left: 20,
93 - right: 20,
94 -};
95 -
96 -const targetEventTypes = ['topTouchStart'];
97 -const rootEventTypes = ['topTouchMove', 'topTouchEnd', 'topTouchCancel'];
98 -
99 -function isFunction(obj): boolean {
100 - return typeof obj === 'function';
101 -}
102 -
103 -function createPressEvent(
104 - context: ReactNativeResponderContext,
105 - type: PressEventType,
106 - target: ReactNativeEventTarget,
107 - pointerType: PointerType,
108 - touchEvent: null | ReactFaricEventTouch,
109 -): PressEvent {
110 - let timestamp = context.getTimeStamp();
111 - let locationX = null;
112 - let locationY = null;
113 - let pageX = null;
114 - let pageY = null;
115 - let screenX = null;
116 - let screenY = null;
117 - let force = null;
118 -
119 - if (touchEvent) {
120 - ({
121 - force,
122 - pageX,
123 - pageY,
124 - screenX,
125 - screenY,
126 - timestamp,
127 - locationX,
128 - locationY,
129 - } = touchEvent);
130 - }
131 - return {
132 - target,
133 - type,
134 - pointerType,
135 - timeStamp: timestamp,
136 - pageX,
137 - pageY,
138 - screenX,
139 - screenY,
140 - locationX,
141 - locationY,
142 - force,
143 - };
144 -}
145 -
146 -function dispatchEvent(
147 - event: ?ReactNativeResponderEvent,
148 - listener: any => void,
149 - context: ReactNativeResponderContext,
150 - state: PressState,
151 - name: PressEventType,
152 - eventPriority: EventPriority,
153 -): void {
154 - const target = ((state.pressTarget: any): ReactNativeEventTarget);
155 - const pointerType = state.pointerType;
156 - const syntheticEvent = createPressEvent(
157 - context,
158 - name,
159 - target,
160 - pointerType,
161 - state.touchEvent,
162 - );
163 - context.dispatchEvent(syntheticEvent, listener, eventPriority);
164 -}
165 -
166 -function dispatchCancel(event, context, props, state): void {
167 - state.touchEvent = null;
168 - if (state.isPressed) {
169 - dispatchPressEndEvents(event, context, props, state);
170 - }
171 - removeRootEventTypes(context, state);
172 -}
173 -
174 -function addRootEventTypes(context, state): void {
175 - if (!state.addedRootEvents) {
176 - state.addedRootEvents = true;
177 - context.addRootEventTypes(rootEventTypes);
178 - }
179 -}
180 -
181 -function removeRootEventTypes(context, state): void {
182 - if (state.addedRootEvents) {
183 - state.addedRootEvents = false;
184 - context.removeRootEventTypes(rootEventTypes);
185 - }
186 -}
187 -
188 -function getTouchFromPressEvent(nativeEvent): ReactFaricEventTouch | null {
189 - const targetTouches = nativeEvent.targetTouches;
190 - if (targetTouches.length > 0) {
191 - return targetTouches[0];
192 - }
193 - return null;
194 -}
195 -
196 -function getTouchById(nativeEvent, pointerId): null | ReactFaricEventTouch {
197 - const changedTouches = nativeEvent.changedTouches;
198 - for (let i = 0; i < changedTouches.length; i++) {
199 - const touch = changedTouches[i];
200 - if (touch.identifier === pointerId) {
201 - return touch;
202 - }
203 - }
204 - return null;
205 -}
206 -
207 -function calculateResponderRegion(
208 - context: ReactNativeResponderContext,
209 - target: ReactNativeEventTarget,
210 - props: PressProps,
211 - cb: ({|
212 - bottom: number,
213 - top: number,
214 - left: number,
215 - right: number,
216 - |}) => void,
217 -) {
218 - const pressRetentionOffset = Object.assign(
219 - {},
220 - DEFAULT_PRESS_RETENTION_OFFSET,
221 - props.pressRetentionOffset,
222 - );
223 -
224 - context.getTargetBoundingRect(target, rect => {
225 - let {left, right, bottom, top} = rect;
226 -
227 - if (pressRetentionOffset) {
228 - if (pressRetentionOffset.bottom != null) {
229 - bottom += pressRetentionOffset.bottom;
230 - }
231 - if (pressRetentionOffset.left != null) {
232 - left -= pressRetentionOffset.left;
233 - }
234 - if (pressRetentionOffset.right != null) {
235 - right += pressRetentionOffset.right;
236 - }
237 - if (pressRetentionOffset.top != null) {
238 - top -= pressRetentionOffset.top;
239 - }
240 - }
241 -
242 - cb({
243 - bottom,
244 - top,
245 - left,
246 - right,
247 - });
248 - });
249 -}
250 -
251 -function dispatchPressChangeEvent(
252 - context: ReactNativeResponderContext,
253 - props: PressProps,
254 - state: PressState,
255 -): void {
256 - const onPressChange = props.onPressChange;
257 - if (isFunction(onPressChange)) {
258 - const bool = state.isActivePressed;
259 - context.dispatchEvent(bool, onPressChange, DiscreteEvent);
260 - }
261 -}
262 -
263 -function validateRegion(touchEvent, state) {
264 - const {responderRegionOnActivation, responderRegionOnDeactivation} = state;
265 - let left, top, right, bottom;
266 -
267 - if (responderRegionOnActivation != null) {
268 - left = responderRegionOnActivation.left;
269 - top = responderRegionOnActivation.top;
270 - right = responderRegionOnActivation.right;
271 - bottom = responderRegionOnActivation.bottom;
272 -
273 - if (responderRegionOnDeactivation != null) {
274 - left = Math.min(left, responderRegionOnDeactivation.left);
275 - top = Math.min(top, responderRegionOnDeactivation.top);
276 - right = Math.max(right, responderRegionOnDeactivation.right);
277 - bottom = Math.max(bottom, responderRegionOnDeactivation.bottom);
278 - }
279 - }
280 - const {pageX: x, pageY: y} = touchEvent;
281 -
282 - state.isPressWithinResponderRegion =
283 - left != null &&
284 - right != null &&
285 - top != null &&
286 - bottom != null &&
287 - x !== null &&
288 - y !== null &&
289 - (x >= left && x <= right && y >= top && y <= bottom);
290 -}
291 -
292 -function updateIsPressWithinResponderRegion(
293 - target,
294 - touchEvent,
295 - context,
296 - props,
297 - state,
298 - cb,
299 -): void {
300 - const pressTarget = state.pressTarget;
301 - if (pressTarget != null) {
302 - // Calculate the responder region we use for deactivation if not
303 - // already done during move event.
304 - if (state.responderRegionOnDeactivation == null) {
305 - calculateResponderRegion(context, pressTarget, props, obj => {
306 - state.responderRegionOnDeactivation = obj;
307 - validateRegion(touchEvent, state);
308 - cb();
309 - });
310 - return;
311 - } else {
312 - validateRegion(touchEvent, state);
313 - }
314 - } else {
315 - state.isPressWithinResponderRegion = true;
316 - }
317 - cb();
318 -}
319 -
320 -function dispatchPressStartEvents(
321 - event: ReactNativeResponderEvent,
322 - context: ReactNativeResponderContext,
323 - props: PressProps,
324 - state: PressState,
325 -): void {
326 - state.isPressed = true;
327 -
328 - if (!state.isActivePressStart) {
329 - state.isActivePressStart = true;
330 - const {
331 - pageX: x,
332 - pageY: y,
333 - } = ((state.touchEvent: any): ReactFaricEventTouch);
334 - const wasActivePressed = state.isActivePressed;
335 - state.isActivePressed = true;
336 - if (x !== undefined && y !== undefined) {
337 - state.activationPosition = {x, y};
338 - }
339 - const onPressStart = props.onPressStart;
340 -
341 - if (isFunction(onPressStart)) {
342 - dispatchEvent(
343 - event,
344 - onPressStart,
345 - context,
346 - state,
347 - 'pressstart',
348 - DiscreteEvent,
349 - );
350 - }
351 - if (!wasActivePressed) {
352 - dispatchPressChangeEvent(context, props, state);
353 - }
354 - }
355 -}
356 -
357 -function dispatchPressEndEvents(
358 - event: ?ReactNativeResponderEvent,
359 - context: ReactNativeResponderContext,
360 - props: PressProps,
361 - state: PressState,
362 -): void {
363 - state.isActivePressStart = false;
364 - state.isPressed = false;
365 -
366 - if (state.isActivePressed) {
367 - state.isActivePressed = false;
368 - const onPressEnd = props.onPressEnd;
369 -
370 - if (isFunction(onPressEnd)) {
371 - dispatchEvent(
372 - event,
373 - onPressEnd,
374 - context,
375 - state,
376 - 'pressend',
377 - DiscreteEvent,
378 - );
379 - }
380 - dispatchPressChangeEvent(context, props, state);
381 - }
382 -
383 - state.responderRegionOnDeactivation = null;
384 -}
385 -
386 -const pressResponderImpl = {
387 - targetEventTypes,
388 - getInitialState(): PressState {
389 - return {
390 - activationPosition: null,
391 - activePointerId: null,
392 - addedRootEvents: false,
393 - isActivePressed: false,
394 - isActivePressStart: false,
395 - isPressed: false,
396 - isPressWithinResponderRegion: false,
397 - pointerType: '',
398 - pressTarget: null,
399 - responderRegionOnActivation: null,
400 - responderRegionOnDeactivation: null,
401 - touchEvent: null,
402 - };
403 - },
404 - onEvent(
405 - event: ReactNativeResponderEvent,
406 - context: ReactNativeResponderContext,
407 - props: PressProps,
408 - state: PressState,
409 - ): void {
410 - const {nativeEvent, type} = event;
411 -
412 - if (type === 'topTouchStart') {
413 - if (!state.isPressed) {
414 - state.pointerType = 'touch';
415 - const pressTarget = (state.pressTarget = context.getResponderNode());
416 - const touchEvent = getTouchFromPressEvent(nativeEvent);
417 - if (touchEvent === null) {
418 - return;
419 - }
420 - state.touchEvent = touchEvent;
421 - state.activePointerId = touchEvent.identifier;
422 - calculateResponderRegion(
423 - context,
424 - ((pressTarget: any): ReactNativeEventTarget),
425 - props,
426 - obj => {
427 - state.responderRegionOnActivation = obj;
428 - },
429 - );
430 - state.responderRegionOnDeactivation = null;
431 - state.isPressWithinResponderRegion = true;
432 -
433 - dispatchPressStartEvents(event, context, props, state);
434 - addRootEventTypes(context, state);
435 - }
436 - }
437 - },
438 - onRootEvent(
439 - event: ReactNativeResponderEvent,
440 - context: ReactNativeResponderContext,
441 - props: PressProps,
442 - state: PressState,
443 - ): void {
444 - const {nativeEvent, target, type} = event;
445 - const activePointerId = state.activePointerId;
446 -
447 - switch (type) {
448 - case 'topTouchMove': {
449 - const touchEvent = getTouchById(nativeEvent, activePointerId);
450 - if (touchEvent === null) {
451 - return;
452 - }
453 - state.touchEvent = touchEvent;
454 -
455 - updateIsPressWithinResponderRegion(
456 - target,
457 - touchEvent,
458 - context,
459 - props,
460 - state,
461 - () => {
462 - if (state.isPressWithinResponderRegion) {
463 - if (state.isPressed) {
464 - const onPressMove = props.onPressMove;
465 - if (isFunction(onPressMove)) {
466 - dispatchEvent(
467 - event,
468 - onPressMove,
469 - context,
470 - state,
471 - 'pressmove',
472 - UserBlockingEvent,
473 - );
474 - }
475 - } else {
476 - dispatchPressStartEvents(event, context, props, state);
477 - }
478 - } else {
479 - dispatchPressEndEvents(event, context, props, state);
480 - }
481 - },
482 - );
483 - break;
484 - }
485 - case 'topTouchEnd': {
486 - if (state.isPressed) {
487 - const touchEvent = getTouchById(nativeEvent, activePointerId);
488 - if (touchEvent === null) {
489 - return;
490 - }
491 - state.touchEvent = touchEvent;
492 - dispatchPressEndEvents(event, context, props, state);
493 - const onPress = props.onPress;
494 -
495 - if (state.pressTarget !== null && isFunction(onPress)) {
496 - // If the event target isn't within the press target, check if we're still
497 - // within the responder region. The region may have changed if the
498 - // element's layout was modified after activation.
499 - updateIsPressWithinResponderRegion(
500 - target,
501 - touchEvent,
502 - context,
503 - props,
504 - state,
505 - () => {
506 - if (state.isPressWithinResponderRegion) {
507 - dispatchEvent(
508 - event,
509 - onPress,
510 - context,
511 - state,
512 - 'press',
513 - DiscreteEvent,
514 - );
515 - }
516 - },
517 - );
518 - }
519 - }
520 - state.touchEvent = null;
521 - removeRootEventTypes(context, state);
522 - break;
523 - }
524 - case 'topTouchCancel': {
525 - dispatchCancel(event, context, props, state);
526 - }
527 - }
528 - },
529 -};
530 -
531 -export const PressResponder = React.unstable_createResponder(
532 - 'Press',
533 - pressResponderImpl,
534 -);
535 -
536 -export function usePress(
537 - props: PressProps,
538 -): ReactEventResponderListener<any, any> {
539 - return React.unstable_useResponder(PressResponder, props);
540 -}
packages/react-native-renderer/src/ReactFabricEventEmitter.js
+1 -14
@@ -18,12 +18,8 @@ import {registrationNameModules} from 'legacy-events/EventPluginRegistry';
18 import {batchedUpdates} from 'legacy-events/ReactGenericBatching';
19
20 import type {AnyNativeEvent} from 'legacy-events/PluginModuleType';
21 -import {
22 - enableFlareAPI,
23 - enableNativeTargetAsInstance,
24 -} from 'shared/ReactFeatureFlags';
21 +import {enableNativeTargetAsInstance} from 'shared/ReactFeatureFlags';
22 import type {TopLevelType} from 'legacy-events/TopLevelEventTypes';
26 -import {dispatchEventForResponderEventSystem} from './ReactFabricEventResponderSystem';
23
24 export {getListener, registrationNameModules as registrationNames};
25
@@ -34,15 +30,6 @@ export function dispatchEvent(
30 ) {
31 const targetFiber = (target: null | Fiber);
32
37 - if (enableFlareAPI) {
38 - // React Flare event system
39 - dispatchEventForResponderEventSystem(
40 - (topLevelType: any),
41 - target,
42 - (nativeEvent: any),
43 - );
44 - }
45 -
33 let eventTarget = null;
34 if (enableNativeTargetAsInstance) {
35 if (targetFiber != null) {
packages/react-native-renderer/src/ReactFabricEventResponderSystem.js deleted
-458
@@ -1,458 +0,0 @@
1 -/**
2 - * Copyright (c) Facebook, Inc. and its affiliates.
3 - *
4 - * This source code is licensed under the MIT license found in the
5 - * LICENSE file in the root directory of this source tree.
6 - *
7 - * @flow
8 - */
9 -
10 -import {HostComponent, ScopeComponent} from 'shared/ReactWorkTags';
11 -import type {Fiber} from 'react-reconciler/src/ReactFiber';
12 -import {
13 - batchedEventUpdates,
14 - discreteUpdates,
15 - flushDiscreteUpdatesIfNeeded,
16 - executeUserEventHandler,
17 -} from 'legacy-events/ReactGenericBatching';
18 -import type {
19 - ReactEventResponder,
20 - ReactEventResponderInstance,
21 -} from 'shared/ReactTypes';
22 -import type {
23 - ReactNativeResponderContext,
24 - ReactNativeResponderEvent,
25 - EventPriority,
26 - ReactNativeEventTarget,
27 - ReactFaricEvent,
28 -} from './ReactNativeTypes';
29 -import {
30 - ContinuousEvent,
31 - UserBlockingEvent,
32 - DiscreteEvent,
33 -} from './ReactNativeTypes';
34 -import invariant from 'shared/invariant';
35 -
36 -// Intentionally not named imports because Rollup would use dynamic dispatch for
37 -// CommonJS interop named imports.
38 -import * as Scheduler from 'scheduler';
39 -const {
40 - unstable_UserBlockingPriority: UserBlockingPriority,
41 - unstable_runWithPriority: runWithPriority,
42 -} = Scheduler;
43 -
44 -type ReactNativeEventResponder = ReactEventResponder<
45 - ReactNativeResponderEvent,
46 - ReactNativeResponderContext,
47 ->;
48 -
49 -type ReactNativeEventResponderInstance = ReactEventResponderInstance<
50 - ReactNativeResponderEvent,
51 - ReactNativeResponderContext,
52 ->;
53 -
54 -const {measureInWindow} = nativeFabricUIManager;
55 -
56 -const rootEventTypesToEventResponderInstances: Map<
57 - string,
58 - Set<ReactNativeEventResponderInstance>,
59 -> = new Map();
60 -
61 -let currentTimeStamp = 0;
62 -let currentInstance: null | ReactNativeEventResponderInstance = null;
63 -
64 -const eventResponderContext: ReactNativeResponderContext = {
65 - dispatchEvent(
66 - eventValue: any,
67 - eventListener: any => void,
68 - eventPriority: EventPriority,
69 - ): void {
70 - validateResponderContext();
71 - validateEventValue(eventValue);
72 - switch (eventPriority) {
73 - case DiscreteEvent: {
74 - flushDiscreteUpdatesIfNeeded(currentTimeStamp);
75 - discreteUpdates(() =>
76 - executeUserEventHandler(eventListener, eventValue),
77 - );
78 - break;
79 - }
80 - case UserBlockingEvent: {
81 - runWithPriority(UserBlockingPriority, () =>
82 - executeUserEventHandler(eventListener, eventValue),
83 - );
84 - break;
85 - }
86 - case ContinuousEvent: {
87 - executeUserEventHandler(eventListener, eventValue);
88 - break;
89 - }
90 - }
91 - },
92 - isTargetWithinNode(
93 - childTarget: ReactNativeEventTarget,
94 - parentTarget: ReactNativeEventTarget,
95 - ) {
96 - validateResponderContext();
97 - const childFiber = getFiberFromTarget(childTarget);
98 - const parentFiber = getFiberFromTarget(parentTarget);
99 -
100 - let node = childFiber;
101 - while (node !== null) {
102 - if (node === parentFiber) {
103 - return true;
104 - }
105 - node = node.return;
106 - }
107 - return false;
108 - },
109 - getTargetBoundingRect(
110 - target: ReactNativeEventTarget,
111 - callback: ({
112 - left: number,
113 - right: number,
114 - top: number,
115 - bottom: number,
116 - }) => void,
117 - ) {
118 - measureInWindow(target.node, (x, y, width, height) => {
119 - callback({
120 - left: x,
121 - right: x + width,
122 - top: y,
123 - bottom: y + height,
124 - });
125 - });
126 - },
127 - addRootEventTypes(rootEventTypes: Array<string>): void {
128 - validateResponderContext();
129 - for (let i = 0; i < rootEventTypes.length; i++) {
130 - const rootEventType = rootEventTypes[i];
131 - const eventResponderInstance = ((currentInstance: any): ReactNativeEventResponderInstance);
132 - registerRootEventType(rootEventType, eventResponderInstance);
133 - }
134 - },
135 - removeRootEventTypes(rootEventTypes: Array<string>): void {
136 - validateResponderContext();
137 - for (let i = 0; i < rootEventTypes.length; i++) {
138 - const rootEventType = rootEventTypes[i];
139 -
140 - let rootEventResponders = rootEventTypesToEventResponderInstances.get(
141 - rootEventType,
142 - );
143 - let rootEventTypesSet = ((currentInstance: any): ReactNativeEventResponderInstance)
144 - .rootEventTypes;
145 - if (rootEventTypesSet !== null) {
146 - rootEventTypesSet.delete(rootEventType);
147 - }
148 - if (rootEventResponders !== undefined) {
149 - rootEventResponders.delete(
150 - ((currentInstance: any): ReactNativeEventResponderInstance),
151 - );
152 - }
153 - }
154 - },
155 - getTimeStamp(): number {
156 - validateResponderContext();
157 - return currentTimeStamp;
158 - },
159 - getResponderNode(): ReactNativeEventTarget | null {
160 - validateResponderContext();
161 - const responderFiber = ((currentInstance: any): ReactNativeEventResponderInstance)
162 - .fiber;
163 - if (responderFiber.tag === ScopeComponent) {
164 - return null;
165 - }
166 - return responderFiber.stateNode;
167 - },
168 -};
169 -
170 -function validateEventValue(eventValue: any): void {
171 - if (typeof eventValue === 'object' && eventValue !== null) {
172 - const {target, type, timeStamp} = eventValue;
173 -
174 - if (target == null || type == null || timeStamp == null) {
175 - throw new Error(
176 - 'context.dispatchEvent: "target", "timeStamp", and "type" fields on event object are required.',
177 - );
178 - }
179 - const showWarning = name => {
180 - if (__DEV__) {
181 - console.error(
182 - '%s is not available on event objects created from event responder modules (React Flare). ' +
183 - 'Try wrapping in a conditional, i.e. `if (event.type !== "press") { event.%s }`',
184 - name,
185 - name,
186 - );
187 - }
188 - };
189 - eventValue.preventDefault = () => {
190 - if (__DEV__) {
191 - showWarning('preventDefault()');
192 - }
193 - };
194 - eventValue.stopPropagation = () => {
195 - if (__DEV__) {
196 - showWarning('stopPropagation()');
197 - }
198 - };
199 - eventValue.isDefaultPrevented = () => {
200 - if (__DEV__) {
201 - showWarning('isDefaultPrevented()');
202 - }
203 - };
204 - eventValue.isPropagationStopped = () => {
205 - if (__DEV__) {
206 - showWarning('isPropagationStopped()');
207 - }
208 - };
209 - // $FlowFixMe: we don't need value, Flow thinks we do
210 - Object.defineProperty(eventValue, 'nativeEvent', {
211 - get() {
212 - if (__DEV__) {
213 - showWarning('nativeEvent');
214 - }
215 - },
216 - });
217 - }
218 -}
219 -
220 -function getFiberFromTarget(
221 - target: null | ReactNativeEventTarget,
222 -): Fiber | null {
223 - if (target === null) {
224 - return null;
225 - }
226 - return ((target.canonical._internalInstanceHandle: any): Fiber) || null;
227 -}
228 -
229 -function createFabricResponderEvent(
230 - topLevelType: string,
231 - nativeEvent: ReactFaricEvent,
232 - target: null | ReactNativeEventTarget,
233 -): ReactNativeResponderEvent {
234 - return {
235 - nativeEvent,
236 - target,
237 - type: topLevelType,
238 - };
239 -}
240 -
241 -function validateResponderContext(): void {
242 - invariant(
243 - currentInstance,
244 - 'An event responder context was used outside of an event cycle.',
245 - );
246 -}
247 -
248 -// TODO this function is almost an exact copy of the DOM version, we should
249 -// somehow share the logic
250 -function responderEventTypesContainType(
251 - eventTypes: Array<string>,
252 - type: string,
253 -): boolean {
254 - for (let i = 0, len = eventTypes.length; i < len; i++) {
255 - if (eventTypes[i] === type) {
256 - return true;
257 - }
258 - }
259 - return false;
260 -}
261 -
262 -function validateResponderTargetEventTypes(
263 - eventType: string,
264 - responder: ReactNativeEventResponder,
265 -): boolean {
266 - const {targetEventTypes} = responder;
267 - // Validate the target event type exists on the responder
268 - if (targetEventTypes !== null) {
269 - return responderEventTypesContainType(targetEventTypes, eventType);
270 - }
271 - return false;
272 -}
273 -
274 -// TODO this function is almost an exact copy of the DOM version, we should
275 -// somehow share the logic
276 -function traverseAndHandleEventResponderInstances(
277 - eventType: string,
278 - targetFiber: null | Fiber,
279 - nativeEvent: ReactFaricEvent,
280 -): void {
281 - // Trigger event responders in this order:
282 - // - Bubble target responder phase
283 - // - Root responder phase
284 -
285 - const responderEvent = createFabricResponderEvent(
286 - eventType,
287 - nativeEvent,
288 - targetFiber !== null
289 - ? ((targetFiber.stateNode: any): ReactNativeEventTarget)
290 - : null,
291 - );
292 - const visitedResponders = new Set();
293 - let node = targetFiber;
294 - while (node !== null) {
295 - const {dependencies, tag} = node;
296 - if (
297 - (tag === HostComponent || tag === ScopeComponent) &&
298 - dependencies !== null
299 - ) {
300 - const respondersMap = dependencies.responders;
301 - if (respondersMap !== null) {
302 - const responderInstances = Array.from(respondersMap.values());
303 - for (let i = 0, length = responderInstances.length; i < length; i++) {
304 - const responderInstance = responderInstances[i];
305 - const {props, responder, state} = responderInstance;
306 - if (
307 - !visitedResponders.has(responder) &&
308 - validateResponderTargetEventTypes(eventType, responder)
309 - ) {
310 - const onEvent = responder.onEvent;
311 - visitedResponders.add(responder);
312 - if (onEvent !== null) {
313 - currentInstance = responderInstance;
314 - onEvent(responderEvent, eventResponderContext, props, state);
315 - }
316 - }
317 - }
318 - }
319 - }
320 - node = node.return;
321 - }
322 - // Root phase
323 - const rootEventResponderInstances = rootEventTypesToEventResponderInstances.get(
324 - eventType,
325 - );
326 - if (rootEventResponderInstances !== undefined) {
327 - const responderInstances = Array.from(rootEventResponderInstances);
328 -
329 - for (let i = 0; i < responderInstances.length; i++) {
330 - const responderInstance = responderInstances[i];
331 - const {props, responder, state} = responderInstance;
332 - const onRootEvent = responder.onRootEvent;
333 - if (onRootEvent !== null) {
334 - currentInstance = responderInstance;
335 - onRootEvent(responderEvent, eventResponderContext, props, state);
336 - }
337 - }
338 - }
339 -}
340 -
341 -// TODO this function is almost an exact copy of the DOM version, we should
342 -// somehow share the logic
343 -export function dispatchEventForResponderEventSystem(
344 - topLevelType: string,
345 - targetFiber: null | Fiber,
346 - nativeEvent: ReactFaricEvent,
347 -): void {
348 - const previousInstance = currentInstance;
349 - const previousTimeStamp = currentTimeStamp;
350 - // We might want to control timeStamp another way here
351 - currentTimeStamp = Date.now();
352 - try {
353 - batchedEventUpdates(() => {
354 - traverseAndHandleEventResponderInstances(
355 - topLevelType,
356 - targetFiber,
357 - nativeEvent,
358 - );
359 - });
360 - } finally {
361 - currentInstance = previousInstance;
362 - currentTimeStamp = previousTimeStamp;
363 - }
364 -}
365 -
366 -// TODO this function is almost an exact copy of the DOM version, we should
367 -// somehow share the logic
368 -export function mountEventResponder(
369 - responder: ReactNativeEventResponder,
370 - responderInstance: ReactNativeEventResponderInstance,
371 - props: Object,
372 - state: Object,
373 -) {
374 - const onMount = responder.onMount;
375 - if (onMount !== null) {
376 - currentInstance = responderInstance;
377 - try {
378 - batchedEventUpdates(() => {
379 - onMount(eventResponderContext, props, state);
380 - });
381 - } finally {
382 - currentInstance = null;
383 - }
384 - }
385 -}
386 -
387 -// TODO this function is almost an exact copy of the DOM version, we should
388 -// somehow share the logic
389 -export function unmountEventResponder(
390 - responderInstance: ReactNativeEventResponderInstance,
391 -): void {
392 - const responder = ((responderInstance.responder: any): ReactNativeEventResponder);
393 - const onUnmount = responder.onUnmount;
394 - if (onUnmount !== null) {
395 - let {props, state} = responderInstance;
396 - currentInstance = responderInstance;
397 - try {
398 - batchedEventUpdates(() => {
399 - onUnmount(eventResponderContext, props, state);
400 - });
401 - } finally {
402 - currentInstance = null;
403 - }
404 - }
405 - const rootEventTypesSet = responderInstance.rootEventTypes;
406 - if (rootEventTypesSet !== null) {
407 - const rootEventTypes = Array.from(rootEventTypesSet);
408 -
409 - for (let i = 0; i < rootEventTypes.length; i++) {
410 - const topLevelEventType = rootEventTypes[i];
411 - let rootEventResponderInstances = rootEventTypesToEventResponderInstances.get(
412 - topLevelEventType,
413 - );
414 - if (rootEventResponderInstances !== undefined) {
415 - rootEventResponderInstances.delete(responderInstance);
416 - }
417 - }
418 - }
419 -}
420 -
421 -function registerRootEventType(
422 - rootEventType: string,
423 - responderInstance: ReactNativeEventResponderInstance,
424 -) {
425 - let rootEventResponderInstances = rootEventTypesToEventResponderInstances.get(
426 - rootEventType,
427 - );
428 - if (rootEventResponderInstances === undefined) {
429 - rootEventResponderInstances = new Set();
430 - rootEventTypesToEventResponderInstances.set(
431 - rootEventType,
432 - rootEventResponderInstances,
433 - );
434 - }
435 - let rootEventTypesSet = responderInstance.rootEventTypes;
436 - if (rootEventTypesSet === null) {
437 - rootEventTypesSet = responderInstance.rootEventTypes = new Set();
438 - }
439 - invariant(
440 - !rootEventTypesSet.has(rootEventType),
441 - 'addRootEventTypes() found a duplicate root event ' +
442 - 'type of "%s". This might be because the event type exists in the event responder "rootEventTypes" ' +
443 - 'array or because of a previous addRootEventTypes() using this root event type.',
444 - rootEventType,
445 - );
446 - rootEventTypesSet.add(rootEventType);
447 - rootEventResponderInstances.add(responderInstance);
448 -}
449 -
450 -export function addRootEventTypesForResponderInstance(
451 - responderInstance: ReactNativeEventResponderInstance,
452 - rootEventTypes: Array<string>,
453 -): void {
454 - for (let i = 0; i < rootEventTypes.length; i++) {
455 - const rootEventType = rootEventTypes[i];
456 - registerRootEventType(rootEventType, responderInstance);
457 - }
458 -}
packages/react-native-renderer/src/ReactFabricHostConfig.js
+7 -34
@@ -13,13 +13,7 @@ import type {
13 MeasureOnSuccessCallback,
14 NativeMethods,
15 ReactNativeBaseComponentViewConfig,
16 - ReactNativeResponderEvent,
17 - ReactNativeResponderContext,
16 } from './ReactNativeTypes';
19 -import type {
20 - ReactEventResponder,
21 - ReactEventResponderInstance,
22 -} from 'shared/ReactTypes';
17
18 import {mountSafeCallback_NOT_REALLY_SAFE} from './NativeMethodsMixinUtils';
19 import {create, diff} from './ReactNativeAttributePayload';
@@ -27,12 +21,6 @@ import {create, diff} from './ReactNativeAttributePayload';
21 import invariant from 'shared/invariant';
22
23 import {dispatchEvent} from './ReactFabricEventEmitter';
30 -import {
31 - mountEventResponder,
32 - unmountEventResponder,
33 -} from './ReactFabricEventResponderSystem';
34 -
35 -import {enableFlareAPI} from 'shared/ReactFeatureFlags';
24
25 // Modules provided by RN:
26 import {
@@ -65,16 +53,6 @@ const {get: getViewConfigForType} = ReactNativeViewConfigRegistry;
53 // This means that they never overlap.
54 let nextReactTag = 2;
55
68 -type ReactNativeEventResponderInstance = ReactEventResponderInstance<
69 - ReactNativeResponderEvent,
70 - ReactNativeResponderContext,
71 ->;
72 -
73 -type ReactNativeEventResponder = ReactEventResponder<
74 - ReactNativeResponderEvent,
75 - ReactNativeResponderContext,
76 ->;
77 -
56 type Node = Object;
57 export type Type = string;
58 export type Props = Object;
@@ -443,25 +421,20 @@ export function replaceContainerChildren(
421 newChildren: ChildSet,
422 ): void {}
423
446 -export function mountResponderInstance(
447 - responder: ReactNativeEventResponder,
448 - responderInstance: ReactNativeEventResponderInstance,
424 +export function DEPRECATED_mountResponderInstance(
425 + responder: any,
426 + responderInstance: any,
427 props: Object,
428 state: Object,
429 instance: Instance,
430 ) {
453 - if (enableFlareAPI) {
454 - mountEventResponder(responder, responderInstance, props, state);
455 - }
431 + throw new Error('Not yet implemented.');
432 }
433
458 -export function unmountResponderInstance(
459 - responderInstance: ReactNativeEventResponderInstance,
434 +export function DEPRECATED_unmountResponderInstance(
435 + responderInstance: any,
436 ): void {
461 - if (enableFlareAPI) {
462 - // TODO stop listening to targetEventTypes
463 - unmountEventResponder(responderInstance);
464 - }
437 + throw new Error('Not yet implemented.');
438 }
439
440 export function getFundamentalComponentInstance(fundamentalInstance) {
packages/react-native-renderer/src/ReactNativeHostConfig.js
+6 -24
@@ -7,15 +7,7 @@
7 * @flow
8 */
9
10 -import type {
11 - ReactNativeBaseComponentViewConfig,
12 - ReactNativeResponderEvent,
13 - ReactNativeResponderContext,
14 -} from './ReactNativeTypes';
15 -import type {
16 - ReactEventResponder,
17 - ReactEventResponderInstance,
18 -} from 'shared/ReactTypes';
10 +import type {ReactNativeBaseComponentViewConfig} from './ReactNativeTypes';
11
12 import invariant from 'shared/invariant';
13
@@ -36,16 +28,6 @@ import ReactNativeFiberHostComponent from './ReactNativeFiberHostComponent';
28
29 const {get: getViewConfigForType} = ReactNativeViewConfigRegistry;
30
39 -type ReactNativeEventResponderInstance = ReactEventResponderInstance<
40 - ReactNativeResponderEvent,
41 - ReactNativeResponderContext,
42 ->;
43 -
44 -type ReactNativeEventResponder = ReactEventResponder<
45 - ReactNativeResponderEvent,
46 - ReactNativeResponderContext,
47 ->;
48 -
31 export type Type = string;
32 export type Props = Object;
33 export type Container = number;
@@ -495,9 +477,9 @@ export function unhideTextInstance(
477 throw new Error('Not yet implemented.');
478 }
479
498 -export function mountResponderInstance(
499 - responder: ReactNativeEventResponder,
500 - responderInstance: ReactNativeEventResponderInstance,
480 +export function DEPRECATED_mountResponderInstance(
481 + responder: any,
482 + responderInstance: any,
483 props: Object,
484 state: Object,
485 instance: Instance,
@@ -505,8 +487,8 @@ export function mountResponderInstance(
487 throw new Error('Not yet implemented.');
488 }
489
508 -export function unmountResponderInstance(
509 - responderInstance: ReactNativeEventResponderInstance,
490 +export function DEPRECATED_unmountResponderInstance(
491 + responderInstance: any,
492 ): void {
493 throw new Error('Not yet implemented.');
494 }
packages/react-native-renderer/src/ReactNativeTypes.js
-45
@@ -201,48 +201,3 @@ export type ReactFaricEvent = {
201 targetTouches: Array<ReactFaricEventTouch>,
202 target: number,
203 };
204 -
205 -export type ReactNativeResponderEvent = {
206 - nativeEvent: ReactFaricEvent,
207 - target: null | ReactNativeEventTarget,
208 - type: string,
209 -};
210 -
211 -export type ReactNativeResponderContext = {
212 - dispatchEvent: (
213 - eventValue: any,
214 - listener: (any) => void,
215 - eventPriority: EventPriority,
216 - ) => void,
217 - isTargetWithinNode: (
218 - childTarget: ReactNativeEventTarget,
219 - parentTarget: ReactNativeEventTarget,
220 - ) => boolean,
221 - getTargetBoundingRect(
222 - target: ReactNativeEventTarget,
223 - cb: ({
224 - left: number,
225 - right: number,
226 - top: number,
227 - bottom: number,
228 - }) => void,
229 - ): void,
230 - addRootEventTypes: (rootEventTypes: Array<string>) => void,
231 - removeRootEventTypes: (rootEventTypes: Array<string>) => void,
232 - getTimeStamp: () => number,
233 - getResponderNode(): ReactNativeEventTarget | null,
234 -};
235 -
236 -export type PointerType =
237 - | ''
238 - | 'mouse'
239 - | 'keyboard'
240 - | 'pen'
241 - | 'touch'
242 - | 'trackpad';
243 -
244 -export type EventPriority = 0 | 1 | 2;
245 -
246 -export const DiscreteEvent: EventPriority = 0;
247 -export const UserBlockingEvent: EventPriority = 1;
248 -export const ContinuousEvent: EventPriority = 2;
packages/react-noop-renderer/src/createReactNoop.js
+2 -2
@@ -373,11 +373,11 @@ function createReactNoop(reconciler: Function, useMutation: boolean) {
373 warnsIfNotActing: true,
374 supportsHydration: false,
375
376 - mountResponderInstance(): void {
376 + DEPRECATED_mountResponderInstance(): void {
377 // NO-OP
378 },
379
380 - unmountResponderInstance(): void {
380 + DEPRECATED_unmountResponderInstance(): void {
381 // NO-OP
382 },
383
packages/react-reconciler/src/ReactFiberCommitWork.js
+12 -12
@@ -29,7 +29,7 @@ import {
29 enableSchedulerTracing,
30 enableProfilerTimer,
31 enableSuspenseServerRenderer,
32 - enableFlareAPI,
32 + enableDeprecatedFlareAPI,
33 enableFundamentalAPI,
34 enableSuspenseCallback,
35 enableScopeAPI,
@@ -122,9 +122,9 @@ import {
122 import {didWarnAboutReassigningProps} from './ReactFiberBeginWork';
123 import {runWithPriority, NormalPriority} from './SchedulerWithReactIntegration';
124 import {
125 - updateLegacyEventListeners,
126 - unmountResponderListeners,
127 -} from './ReactFiberEvents';
125 + updateDeprecatedEventListeners,
126 + unmountDeprecatedResponderListeners,
127 +} from './ReactFiberDeprecatedEvents';
128
129 let didWarnAboutUndefinedSnapshotBeforeUpdate: Set<mixed> | null = null;
130 if (__DEV__) {
@@ -796,8 +796,8 @@ function commitUnmount(
796 return;
797 }
798 case HostComponent: {
799 - if (enableFlareAPI) {
800 - unmountResponderListeners(current);
799 + if (enableDeprecatedFlareAPI) {
800 + unmountDeprecatedResponderListeners(current);
801 beforeRemoveInstance(current.stateNode);
802 }
803 safelyDetachRef(current);
@@ -837,8 +837,8 @@ function commitUnmount(
837 return;
838 }
839 case ScopeComponent: {
840 - if (enableFlareAPI) {
841 - unmountResponderListeners(current);
840 + if (enableDeprecatedFlareAPI) {
841 + unmountDeprecatedResponderListeners(current);
842 }
843 if (enableScopeAPI) {
844 safelyDetachRef(current);
@@ -1352,11 +1352,11 @@ function commitWork(current: Fiber | null, finishedWork: Fiber): void {
1352 finishedWork,
1353 );
1354 }
1355 - if (enableFlareAPI) {
1355 + if (enableDeprecatedFlareAPI) {
1356 const prevListeners = oldProps.DEPRECATED_flareListeners;
1357 const nextListeners = newProps.DEPRECATED_flareListeners;
1358 if (prevListeners !== nextListeners) {
1359 - updateLegacyEventListeners(nextListeners, finishedWork, null);
1359 + updateDeprecatedEventListeners(nextListeners, finishedWork, null);
1360 }
1361 }
1362 }
@@ -1415,13 +1415,13 @@ function commitWork(current: Fiber | null, finishedWork: Fiber): void {
1415 if (enableScopeAPI) {
1416 const scopeInstance = finishedWork.stateNode;
1417 scopeInstance.fiber = finishedWork;
1418 - if (enableFlareAPI) {
1418 + if (enableDeprecatedFlareAPI) {
1419 const newProps = finishedWork.memoizedProps;
1420 const oldProps = current !== null ? current.memoizedProps : newProps;
1421 const prevListeners = oldProps.DEPRECATED_flareListeners;
1422 const nextListeners = newProps.DEPRECATED_flareListeners;
1423 if (prevListeners !== nextListeners || current === null) {
1424 - updateLegacyEventListeners(nextListeners, finishedWork, null);
1424 + updateDeprecatedEventListeners(nextListeners, finishedWork, null);
1425 }
1426 }
1427 }
packages/react-reconciler/src/ReactFiberCompleteWork.js
+10 -10
@@ -115,7 +115,7 @@ import {
115 enableSchedulerTracing,
116 enableSuspenseCallback,
117 enableSuspenseServerRenderer,
118 - enableFlareAPI,
118 + enableDeprecatedFlareAPI,
119 enableFundamentalAPI,
120 enableScopeAPI,
121 } from 'shared/ReactFeatureFlags';
@@ -128,7 +128,7 @@ import {
128 import {createFundamentalStateInstance} from './ReactFiberFundamental';
129 import {Never} from './ReactFiberExpirationTime';
130 import {resetChildFibers} from './ReactChildFiber';
131 -import {updateLegacyEventListeners} from './ReactFiberEvents';
131 +import {updateDeprecatedEventListeners} from './ReactFiberDeprecatedEvents';
132 import {createScopeMethods} from './ReactFiberScope';
133
134 function markUpdate(workInProgress: Fiber) {
@@ -685,7 +685,7 @@ function completeWork(
685 rootContainerInstance,
686 );
687
688 - if (enableFlareAPI) {
688 + if (enableDeprecatedFlareAPI) {
689 const prevListeners = current.memoizedProps.DEPRECATED_flareListeners;
690 const nextListeners = newProps.DEPRECATED_flareListeners;
691 if (prevListeners !== nextListeners) {
@@ -727,10 +727,10 @@ function completeWork(
727 // commit-phase we mark this as such.
728 markUpdate(workInProgress);
729 }
730 - if (enableFlareAPI) {
730 + if (enableDeprecatedFlareAPI) {
731 const listeners = newProps.DEPRECATED_flareListeners;
732 if (listeners != null) {
733 - updateLegacyEventListeners(
733 + updateDeprecatedEventListeners(
734 listeners,
735 workInProgress,
736 rootContainerInstance,
@@ -751,10 +751,10 @@ function completeWork(
751 // This needs to be set before we mount Flare event listeners
752 workInProgress.stateNode = instance;
753
754 - if (enableFlareAPI) {
754 + if (enableDeprecatedFlareAPI) {
755 const listeners = newProps.DEPRECATED_flareListeners;
756 if (listeners != null) {
757 - updateLegacyEventListeners(
757 + updateDeprecatedEventListeners(
758 listeners,
759 workInProgress,
760 rootContainerInstance,
@@ -1261,11 +1261,11 @@ function completeWork(
1261 };
1262 workInProgress.stateNode = scopeInstance;
1263 scopeInstance.methods = createScopeMethods(type, scopeInstance);
1264 - if (enableFlareAPI) {
1264 + if (enableDeprecatedFlareAPI) {
1265 const listeners = newProps.DEPRECATED_flareListeners;
1266 if (listeners != null) {
1267 const rootContainerInstance = getRootHostContainer();
1268 - updateLegacyEventListeners(
1268 + updateDeprecatedEventListeners(
1269 listeners,
1270 workInProgress,
1271 rootContainerInstance,
@@ -1277,7 +1277,7 @@ function completeWork(
1277 markUpdate(workInProgress);
1278 }
1279 } else {
1280 - if (enableFlareAPI) {
1280 + if (enableDeprecatedFlareAPI) {
1281 const prevListeners =
1282 current.memoizedProps.DEPRECATED_flareListeners;
1283 const nextListeners = newProps.DEPRECATED_flareListeners;
packages/react-reconciler/src/ReactFiberDeprecatedEvents.js renamed
+8 -8
@@ -16,8 +16,8 @@ import type {
16 } from 'shared/ReactTypes';
17
18 import {
19 - mountResponderInstance,
20 - unmountResponderInstance,
19 + DEPRECATED_mountResponderInstance,
20 + DEPRECATED_unmountResponderInstance,
21 } from './ReactFiberHostConfig';
22 import {NoWork} from './ReactFiberExpirationTime';
23
@@ -81,7 +81,7 @@ function mountEventResponder(
81 }
82 }
83
84 - mountResponderInstance(
84 + DEPRECATED_mountResponderInstance(
85 responder,
86 responderInstance,
87 responderProps,
@@ -144,7 +144,7 @@ function updateEventListener(
144 }
145 }
146
147 -export function updateLegacyEventListeners(
147 +export function updateDeprecatedEventListeners(
148 listeners: any,
149 fiber: Fiber,
150 rootContainerInstance: null | Container,
@@ -195,7 +195,7 @@ export function updateLegacyEventListeners(
195 const responderInstance = ((respondersMap.get(
196 mountedResponder,
197 ): any): ReactEventResponderInstance<any, any>);
198 - unmountResponderInstance(responderInstance);
198 + DEPRECATED_unmountResponderInstance(responderInstance);
199 respondersMap.delete(mountedResponder);
200 }
201 }
@@ -203,7 +203,7 @@ export function updateLegacyEventListeners(
203 }
204 }
205
206 -export function createResponderListener(
206 +export function createDeprecatedResponderListener(
207 responder: ReactEventResponder<any, any>,
208 props: Object,
209 ): ReactEventResponderListener<any, any> {
@@ -217,7 +217,7 @@ export function createResponderListener(
217 return eventResponderListener;
218 }
219
220 -export function unmountResponderListeners(fiber: Fiber) {
220 +export function unmountDeprecatedResponderListeners(fiber: Fiber) {
221 const dependencies = fiber.dependencies;
222
223 if (dependencies !== null) {
@@ -226,7 +226,7 @@ export function unmountResponderListeners(fiber: Fiber) {
226 const responderInstances = Array.from(respondersMap.values());
227 for (let i = 0, length = responderInstances.length; i < length; i++) {
228 const responderInstance = responderInstances[i];
229 - unmountResponderInstance(responderInstance);
229 + DEPRECATED_unmountResponderInstance(responderInstance);
230 }
231 dependencies.responders = null;
232 }
packages/react-reconciler/src/ReactFiberHooks.js
+8 -8
@@ -22,7 +22,7 @@ import ReactSharedInternals from 'shared/ReactSharedInternals';
22
23 import {NoWork, Sync} from './ReactFiberExpirationTime';
24 import {readContext} from './ReactFiberNewContext';
25 -import {createResponderListener} from './ReactFiberEvents';
25 +import {createDeprecatedResponderListener} from './ReactFiberDeprecatedEvents';
26 import {
27 Update as UpdateEffect,
28 Passive as PassiveEffect,
@@ -1390,7 +1390,7 @@ const HooksDispatcherOnMount: Dispatcher = {
1390 useRef: mountRef,
1391 useState: mountState,
1392 useDebugValue: mountDebugValue,
1393 - useResponder: createResponderListener,
1393 + useResponder: createDeprecatedResponderListener,
1394 useDeferredValue: mountDeferredValue,
1395 useTransition: mountTransition,
1396 };
@@ -1408,7 +1408,7 @@ const HooksDispatcherOnUpdate: Dispatcher = {
1408 useRef: updateRef,
1409 useState: updateState,
1410 useDebugValue: updateDebugValue,
1411 - useResponder: createResponderListener,
1411 + useResponder: createDeprecatedResponderListener,
1412 useDeferredValue: updateDeferredValue,
1413 useTransition: updateTransition,
1414 };
@@ -1544,7 +1544,7 @@ if (__DEV__) {
1544 ): ReactEventResponderListener<E, C> {
1545 currentHookNameInDev = 'useResponder';
1546 mountHookTypesDev();
1547 - return createResponderListener(responder, props);
1547 + return createDeprecatedResponderListener(responder, props);
1548 },
1549 useDeferredValue<T>(value: T, config: TimeoutConfig | void | null): T {
1550 currentHookNameInDev = 'useDeferredValue';
@@ -1661,7 +1661,7 @@ if (__DEV__) {
1661 ): ReactEventResponderListener<E, C> {
1662 currentHookNameInDev = 'useResponder';
1663 updateHookTypesDev();
1664 - return createResponderListener(responder, props);
1664 + return createDeprecatedResponderListener(responder, props);
1665 },
1666 useDeferredValue<T>(value: T, config: TimeoutConfig | void | null): T {
1667 currentHookNameInDev = 'useDeferredValue';
@@ -1778,7 +1778,7 @@ if (__DEV__) {
1778 ): ReactEventResponderListener<E, C> {
1779 currentHookNameInDev = 'useResponder';
1780 updateHookTypesDev();
1781 - return createResponderListener(responder, props);
1781 + return createDeprecatedResponderListener(responder, props);
1782 },
1783 useDeferredValue<T>(value: T, config: TimeoutConfig | void | null): T {
1784 currentHookNameInDev = 'useDeferredValue';
@@ -1907,7 +1907,7 @@ if (__DEV__) {
1907 currentHookNameInDev = 'useResponder';
1908 warnInvalidHookAccess();
1909 mountHookTypesDev();
1910 - return createResponderListener(responder, props);
1910 + return createDeprecatedResponderListener(responder, props);
1911 },
1912 useDeferredValue<T>(value: T, config: TimeoutConfig | void | null): T {
1913 currentHookNameInDev = 'useDeferredValue';
@@ -2038,7 +2038,7 @@ if (__DEV__) {
2038 currentHookNameInDev = 'useResponder';
2039 warnInvalidHookAccess();
2040 updateHookTypesDev();
2041 - return createResponderListener(responder, props);
2041 + return createDeprecatedResponderListener(responder, props);
2042 },
2043 useDeferredValue<T>(value: T, config: TimeoutConfig | void | null): T {
2044 currentHookNameInDev = 'useDeferredValue';
packages/react-reconciler/src/__tests__/ReactScope-test.internal.js
+1 -1
@@ -19,7 +19,7 @@ describe('ReactScope', () => {
19 jest.resetModules();
20 ReactFeatureFlags = require('shared/ReactFeatureFlags');
21 ReactFeatureFlags.enableScopeAPI = true;
22 - ReactFeatureFlags.enableFlareAPI = true;
22 + ReactFeatureFlags.enableDeprecatedFlareAPI = true;
23 React = require('react');
24 });
25
packages/react-reconciler/src/forks/ReactFiberHostConfig.custom.js
+4 -2
@@ -61,8 +61,10 @@ export const warnsIfNotActing = $$$hostConfig.warnsIfNotActing;
61 export const supportsMutation = $$$hostConfig.supportsMutation;
62 export const supportsPersistence = $$$hostConfig.supportsPersistence;
63 export const supportsHydration = $$$hostConfig.supportsHydration;
64 -export const mountResponderInstance = $$$hostConfig.mountResponderInstance;
65 -export const unmountResponderInstance = $$$hostConfig.unmountResponderInstance;
64 +export const DEPRECATED_mountResponderInstance =
65 + $$$hostConfig.DEPRECATED_mountResponderInstance;
66 +export const DEPRECATED_unmountResponderInstance =
67 + $$$hostConfig.DEPRECATED_unmountResponderInstance;
68 export const getFundamentalComponentInstance =
69 $$$hostConfig.getFundamentalComponentInstance;
70 export const mountFundamentalComponent =
packages/react-test-renderer/src/ReactTestHostConfig.js
+5 -5
@@ -13,7 +13,7 @@ import type {
13 ReactFundamentalComponentInstance,
14 } from 'shared/ReactTypes';
15
16 -import {enableFlareAPI} from 'shared/ReactFeatureFlags';
16 +import {enableDeprecatedFlareAPI} from 'shared/ReactFeatureFlags';
17
18 export type Type = string;
19 export type Props = Object;
@@ -147,7 +147,7 @@ export function createInstance(
147 internalInstanceHandle: Object,
148 ): Instance {
149 let propsToUse = props;
150 - if (enableFlareAPI) {
150 + if (enableDeprecatedFlareAPI) {
151 if (props.DEPRECATED_flareListeners != null) {
152 // We want to remove the "DEPRECATED_flareListeners" prop
153 // as we don't want it in the test renderer's
@@ -214,7 +214,7 @@ export function createTextInstance(
214 internalInstanceHandle: Object,
215 ): TextInstance {
216 if (__DEV__) {
217 - if (enableFlareAPI) {
217 + if (enableDeprecatedFlareAPI) {
218 if (hostContext === EVENT_COMPONENT_CONTEXT) {
219 console.error(
220 'validateDOMNesting: React event components cannot have text DOM nodes as children. ' +
@@ -300,7 +300,7 @@ export function unhideTextInstance(
300 textInstance.isHidden = false;
301 }
302
303 -export function mountResponderInstance(
303 +export function DEPRECATED_mountResponderInstance(
304 responder: ReactEventResponder<any, any>,
305 responderInstance: ReactEventResponderInstance<any, any>,
306 props: Object,
@@ -310,7 +310,7 @@ export function mountResponderInstance(
310 // noop
311 }
312
313 -export function unmountResponderInstance(
313 +export function DEPRECATED_unmountResponderInstance(
314 responderInstance: ReactEventResponderInstance<any, any>,
315 ): void {
316 // noop
packages/react/src/React.js
+4 -4
@@ -58,7 +58,7 @@ import createResponder from 'shared/createEventResponder';
58 import createScope from 'shared/createScope';
59 import {
60 enableJSXTransformAPI,
61 - enableFlareAPI,
61 + enableDeprecatedFlareAPI,
62 enableFundamentalAPI,
63 enableScopeAPI,
64 exposeConcurrentModeAPIs,
@@ -114,9 +114,9 @@ if (exposeConcurrentModeAPIs) {
114 React.unstable_withSuspenseConfig = withSuspenseConfig;
115 }
116
117 -if (enableFlareAPI) {
118 - React.unstable_useResponder = useResponder;
119 - React.unstable_createResponder = createResponder;
117 +if (enableDeprecatedFlareAPI) {
118 + React.DEPRECATED_useResponder = useResponder;
119 + React.DEPRECATED_createResponder = createResponder;
120 }
121
122 if (enableFundamentalAPI) {
packages/shared/ReactFeatureFlags.js
+1 -1
@@ -52,7 +52,7 @@ export const exposeConcurrentModeAPIs = __EXPERIMENTAL__;
52 export const warnAboutShorthandPropertyCollision = false;
53
54 // Experimental React Flare event system and event components support.
55 -export const enableFlareAPI = false;
55 +export const enableDeprecatedFlareAPI = false;
56
57 // Experimental Host Component support.
58 export const enableFundamentalAPI = false;
packages/shared/forks/ReactFeatureFlags.native-fb.js
+1 -1
@@ -31,7 +31,7 @@ export const disableJavaScriptURLs = false;
31 export const disableInputAttributeSyncing = false;
32 export const replayFailedUnitOfWorkWithInvokeGuardedCallback = __DEV__;
33 export const warnAboutDeprecatedLifecycles = true;
34 -export const enableFlareAPI = false;
34 +export const enableDeprecatedFlareAPI = false;
35 export const enableFundamentalAPI = false;
36 export const enableScopeAPI = false;
37 export const enableJSXTransformAPI = false;
packages/shared/forks/ReactFeatureFlags.native-oss.js
+1 -1
@@ -25,7 +25,7 @@ export const disableInputAttributeSyncing = false;
25 export const exposeConcurrentModeAPIs = __EXPERIMENTAL__;
26 export const warnAboutShorthandPropertyCollision = false;
27 export const enableSchedulerDebugging = false;
28 -export const enableFlareAPI = false;
28 +export const enableDeprecatedFlareAPI = false;
29 export const enableFundamentalAPI = false;
30 export const enableScopeAPI = false;
31 export const enableJSXTransformAPI = false;
packages/shared/forks/ReactFeatureFlags.persistent.js
+1 -1
@@ -25,7 +25,7 @@ export const disableInputAttributeSyncing = false;
25 export const exposeConcurrentModeAPIs = __EXPERIMENTAL__;
26 export const warnAboutShorthandPropertyCollision = false;
27 export const enableSchedulerDebugging = false;
28 -export const enableFlareAPI = false;
28 +export const enableDeprecatedFlareAPI = false;
29 export const enableFundamentalAPI = false;
30 export const enableScopeAPI = false;
31 export const enableJSXTransformAPI = false;
packages/shared/forks/ReactFeatureFlags.test-renderer.js
+1 -1
@@ -25,7 +25,7 @@ export const disableInputAttributeSyncing = false;
25 export const exposeConcurrentModeAPIs = __EXPERIMENTAL__;
26 export const warnAboutShorthandPropertyCollision = false;
27 export const enableSchedulerDebugging = false;
28 -export const enableFlareAPI = false;
28 +export const enableDeprecatedFlareAPI = false;
29 export const enableFundamentalAPI = false;
30 export const enableScopeAPI = false;
31 export const enableJSXTransformAPI = false;
packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
+1 -1
@@ -23,7 +23,7 @@ export const enableSelectiveHydration = false;
23 export const exposeConcurrentModeAPIs = __EXPERIMENTAL__;
24 export const enableSchedulerDebugging = false;
25 export const disableJavaScriptURLs = false;
26 -export const enableFlareAPI = true;
26 +export const enableDeprecatedFlareAPI = true;
27 export const enableFundamentalAPI = false;
28 export const enableScopeAPI = true;
29 export const enableJSXTransformAPI = true;
packages/shared/forks/ReactFeatureFlags.www.js
+1 -1
@@ -72,7 +72,7 @@ function updateFlagOutsideOfReactCallStack() {
72 }
73 }
74
75 -export const enableFlareAPI = true;
75 +export const enableDeprecatedFlareAPI = true;
76
77 export const enableFundamentalAPI = false;
78