[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