Skip to content

Commit e2ccbf0

Browse files
authored
Further cleanup to before/after blur (facebook#18649)
1 parent c5c25d3 commit e2ccbf0

File tree

3 files changed

+8
-38
lines changed

3 files changed

+8
-38
lines changed

packages/react-dom/src/client/ReactDOMComponent.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1355,10 +1355,6 @@ export function listenToEventResponderEventTypes(
13551355
const targetEventType = isPassive
13561356
? eventType
13571357
: eventType.substring(0, eventType.length - 7);
1358-
// We don't listen to this as we actually emulate it in the host config
1359-
if (targetEventType === 'beforeblur') {
1360-
continue;
1361-
}
13621358
if (!listenerMap.has(eventKey)) {
13631359
if (isPassive) {
13641360
const activeKey = targetEventType + '_active';

packages/react-dom/src/client/ReactDOMHostConfig.js

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ import {REACT_OPAQUE_ID_TYPE} from 'shared/ReactSymbols';
6262
import {
6363
mountEventResponder,
6464
unmountEventResponder,
65-
DEPRECATED_dispatchEventForResponderEventSystem,
6665
} from '../events/DeprecatedDOMEventResponderSystem';
6766
import {retryIfBlockedOn} from '../events/ReactDOMEventReplaying';
6867

@@ -74,8 +73,6 @@ import {
7473
enableScopeAPI,
7574
} from 'shared/ReactFeatureFlags';
7675
import {
77-
RESPONDER_EVENT_SYSTEM,
78-
IS_PASSIVE,
7976
PLUGIN_EVENT_SYSTEM,
8077
USE_EVENT_SYSTEM,
8178
} from '../events/EventSystemFlags';
@@ -528,22 +525,9 @@ function createEvent(type: TopLevelType): Event {
528525
}
529526

530527
function dispatchBeforeDetachedBlur(target: HTMLElement): void {
531-
const targetInstance = getClosestInstanceFromNode(target);
532528
((selectionInformation: any): SelectionInformation).activeElementDetached = target;
533529

534-
if (enableDeprecatedFlareAPI) {
535-
DEPRECATED_dispatchEventForResponderEventSystem(
536-
'beforeblur',
537-
targetInstance,
538-
({
539-
target,
540-
timeStamp: Date.now(),
541-
}: any),
542-
target,
543-
RESPONDER_EVENT_SYSTEM | IS_PASSIVE,
544-
);
545-
}
546-
if (enableUseEventAPI) {
530+
if (enableDeprecatedFlareAPI || enableUseEventAPI) {
547531
const event = createEvent(TOP_BEFORE_BLUR);
548532
// Dispatch "beforeblur" directly on the target,
549533
// so it gets picked up by the event system and
@@ -553,19 +537,7 @@ function dispatchBeforeDetachedBlur(target: HTMLElement): void {
553537
}
554538

555539
function dispatchAfterDetachedBlur(target: HTMLElement): void {
556-
if (enableDeprecatedFlareAPI) {
557-
DEPRECATED_dispatchEventForResponderEventSystem(
558-
'afterblur',
559-
null,
560-
({
561-
relatedTarget: target,
562-
timeStamp: Date.now(),
563-
}: any),
564-
target,
565-
RESPONDER_EVENT_SYSTEM | IS_PASSIVE,
566-
);
567-
}
568-
if (enableUseEventAPI) {
540+
if (enableDeprecatedFlareAPI || enableUseEventAPI) {
569541
const event = createEvent(TOP_AFTER_BLUR);
570542
// So we know what was detached, make the relatedTarget the
571543
// detached target on the "afterblur" event.

packages/react-interactions/events/src/dom/DeprecatedFocus.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -381,14 +381,13 @@ function dispatchAfterBlurWithinEvents(
381381
state: FocusState,
382382
) {
383383
const pointerType = state.pointerType;
384-
const target = ((state.focusTarget: any): Element | Document) || event.target;
385384
const onAfterBlurWithin = (props.onAfterBlurWithin: any);
386385
const relatedTarget = state.detachedTarget;
387-
if (isFunction(onAfterBlurWithin)) {
386+
if (isFunction(onAfterBlurWithin) && relatedTarget !== null) {
388387
const syntheticEvent = createFocusEvent(
389388
context,
390389
'afterblurwithin',
391-
target,
390+
relatedTarget,
392391
pointerType,
393392
relatedTarget,
394393
);
@@ -684,7 +683,10 @@ const focusWithinResponderImpl = {
684683
): void {
685684
if (event.type === 'afterblur') {
686685
const detachedTarget = state.detachedTarget;
687-
if (detachedTarget !== null && detachedTarget === event.target) {
686+
if (
687+
detachedTarget !== null &&
688+
detachedTarget === event.nativeEvent.relatedTarget
689+
) {
688690
dispatchAfterBlurWithinEvents(context, event, props, state);
689691
state.detachedTarget = null;
690692
if (state.addedRootEvents) {

0 commit comments

Comments
 (0)