Polyfill onScrollEnd Event in Safari (#32427)

We added support for `onScrollEnd` in #26789 but it only works in Chrome
and Firefox. Safari still doesn't support `scrollend` and there's no
indication that they will anytime soon so this polyfills it.

While I don't particularly love our synthetic event system this tries to
stay within the realm of how our other polyfills work. This implements
all `onScrollEnd` events as a plugin.

The basic principle is to first feature detect the `onscrollend` DOM
property to see if there's native support and otherwise just use the
native event.

Then we listen to `scroll` events and set a timeout. If we don't get any
more scroll events before the timeout we fire `onScrollEnd`. Basically
debouncing it. If we're currently pressing down on touch or a mouse then
we wait until it is lifted such as if you're scrolling with a finger or
using the scrollbars on desktop but isn't currently moving.

If we do get any native events even though we're in polyfilling mode, we
use that as an indication to fire the `onScrollEnd` early.

Part of the motivation is that this becomes extra useful pair for
https://github.com/facebook/react/pull/32422. We also probably need
these events to coincide with other gesture related internals so you're
better off using our polyfill so they're synced.

DiffTrain build for [605a880c8c](https://github.com/facebook/react/commit/605a880c8c5191e9f8c52468458709cd17a486c1)
This commit is contained in:
sebmarkbage
2025-03-03 11:30:13 -08:00
committed by sebmarkbage
parent 0f71e700f0
commit 0fc4c58f7c
23 changed files with 1792 additions and 1186 deletions
+1 -1
View File
@@ -1 +1 @@
19.1.0-native-fb-3607f483-20250227
19.1.0-native-fb-605a880c-20250303
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<0155acee191910091deb8961e6d1a605>>
* @generated SignedSource<<9d9dadbcb7d2cc1cae45d4315d0ad480>>
*/
"use strict";
@@ -404,5 +404,5 @@ __DEV__ &&
exports.useFormStatus = function () {
return resolveDispatcher().useHostTransitionStatus();
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
})();
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<043ca5876df60de73faa86f59a7977d2>>
* @generated SignedSource<<044c035f2fba62ace75dc1f5f64711d0>>
*/
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<043ca5876df60de73faa86f59a7977d2>>
* @generated SignedSource<<044c035f2fba62ace75dc1f5f64711d0>>
*/
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<c3749b89cd430e0eba1a46dbbe34b22d>>
* @generated SignedSource<<168e0e7c5f2e25eec07e0ae414bc510d>>
*/
/*
@@ -712,7 +712,8 @@ var randomKey = Math.random().toString(36).slice(2),
internalEventHandlerListenersKey = "__reactListeners$" + randomKey,
internalEventHandlesSetKey = "__reactHandles$" + randomKey,
internalRootNodeResourcesKey = "__reactResources$" + randomKey,
internalHoistableMarker = "__reactMarker$" + randomKey;
internalHoistableMarker = "__reactMarker$" + randomKey,
internalScrollTimer = "__reactScroll$" + randomKey;
function detachDeletedInstance(node) {
delete node[internalInstanceKey];
delete node[internalPropsKey];
@@ -2060,6 +2061,16 @@ function isTextInputElement(elem) {
? !0
: !1;
}
function isEventSupported(eventNameSuffix) {
if (!canUseDOM) return !1;
eventNameSuffix = "on" + eventNameSuffix;
var isSupported = eventNameSuffix in document;
isSupported ||
((isSupported = document.createElement("div")),
isSupported.setAttribute(eventNameSuffix, "return;"),
(isSupported = "function" === typeof isSupported[eventNameSuffix]));
return isSupported;
}
function createAndAccumulateChangeEvent(
dispatchQueue,
inst,
@@ -2084,7 +2095,7 @@ function createAndAccumulateChangeEvent(
}
var activeElement$1 = null,
activeElementInst$1 = null;
function runEventInBatch(dispatchQueue) {
function runEventInBatch$1(dispatchQueue) {
processDispatchQueue(dispatchQueue, 0);
}
function getInstIfValueChanged(targetInst) {
@@ -2095,22 +2106,10 @@ function getTargetInstForChangeEvent(domEventName, targetInst) {
if ("change" === domEventName) return targetInst;
}
var isInputEventSupported = !1;
if (canUseDOM) {
var JSCompiler_inline_result$jscomp$294;
if (canUseDOM) {
var isSupported$jscomp$inline_426 = "oninput" in document;
if (!isSupported$jscomp$inline_426) {
var element$jscomp$inline_427 = document.createElement("div");
element$jscomp$inline_427.setAttribute("oninput", "return;");
isSupported$jscomp$inline_426 =
"function" === typeof element$jscomp$inline_427.oninput;
}
JSCompiler_inline_result$jscomp$294 = isSupported$jscomp$inline_426;
} else JSCompiler_inline_result$jscomp$294 = !1;
isInputEventSupported =
JSCompiler_inline_result$jscomp$294 &&
(!document.documentMode || 9 < document.documentMode);
}
canUseDOM &&
(isInputEventSupported =
isEventSupported("input") &&
(!document.documentMode || 9 < document.documentMode));
function stopWatchingForValueChange() {
activeElement$1 &&
(activeElement$1.detachEvent("onpropertychange", handlePropertyChange),
@@ -2128,7 +2127,7 @@ function handlePropertyChange(nativeEvent) {
nativeEvent,
getEventTarget(nativeEvent)
);
batchedUpdates$1(runEventInBatch, dispatchQueue);
batchedUpdates$1(runEventInBatch$1, dispatchQueue);
}
}
function handleEventsForInputEventPolyfill(domEventName, target, targetInst) {
@@ -2348,7 +2347,7 @@ var ANIMATION_END = getVendorPrefixedEventName("animationend"),
TRANSITION_END = getVendorPrefixedEventName("transitionend"),
topLevelEventsToReactNames = new Map(),
simpleEventPluginEvents =
"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split(
"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(
" "
);
function registerSimpleEvent(domEventName, reactName) {
@@ -10139,7 +10138,8 @@ function prepareToHydrateHostInstance(fiber) {
listenToNonDelegatedEvent("toggle", instance)),
null != props.onScroll && listenToNonDelegatedEvent("scroll", instance),
null != props.onScrollEnd &&
listenToNonDelegatedEvent("scrollend", instance),
(listenToNonDelegatedEvent("scrollend", instance),
listenToNonDelegatedEvent("scroll", instance)),
null != props.onClick && (instance.onclick = noop$1),
(instance = !0))
: (instance = !1);
@@ -12457,7 +12457,7 @@ function createFormDataWithSubmitter(form, submitter) {
temp.parentNode.removeChild(temp);
return form;
}
function extractEvents$1(
function extractEvents$2(
dispatchQueue,
domEventName,
maybeTargetInst,
@@ -12532,21 +12532,56 @@ function extractEvents$1(
});
}
}
var isScrollEndEventSupported = canUseDOM && isEventSupported("scrollend"),
isTouchStarted = !1,
isMouseDown = !1;
function runEventInBatch(dispatchQueue) {
processDispatchQueue(dispatchQueue, 0);
}
function fireScrollEnd(targetInst, nativeEvent, nativeEventTarget) {
nativeEventTarget[internalScrollTimer] = void 0;
if (isMouseDown || isTouchStarted)
debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget);
else {
var dispatchQueue = [];
targetInst = accumulateTwoPhaseListeners(targetInst, "onScrollEnd");
0 < targetInst.length &&
((nativeEvent = new SyntheticUIEvent(
"onScrollEnd",
"scrollend",
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({ event: nativeEvent, listeners: targetInst }));
batchedUpdates$1(runEventInBatch, dispatchQueue);
}
}
function debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget) {
var existingTimer = nativeEventTarget[internalScrollTimer];
null != existingTimer && clearTimeout(existingTimer);
null !== targetInst &&
((targetInst = setTimeout(
fireScrollEnd.bind(null, targetInst, nativeEvent, nativeEventTarget),
200
)),
(nativeEventTarget[internalScrollTimer] = targetInst));
}
for (
var i$jscomp$inline_1563 = 0;
i$jscomp$inline_1563 < simpleEventPluginEvents.length;
i$jscomp$inline_1563++
var i$jscomp$inline_1567 = 0;
i$jscomp$inline_1567 < simpleEventPluginEvents.length;
i$jscomp$inline_1567++
) {
var eventName$jscomp$inline_1564 =
simpleEventPluginEvents[i$jscomp$inline_1563],
domEventName$jscomp$inline_1565 =
eventName$jscomp$inline_1564.toLowerCase(),
capitalizedEvent$jscomp$inline_1566 =
eventName$jscomp$inline_1564[0].toUpperCase() +
eventName$jscomp$inline_1564.slice(1);
var eventName$jscomp$inline_1568 =
simpleEventPluginEvents[i$jscomp$inline_1567],
domEventName$jscomp$inline_1569 =
eventName$jscomp$inline_1568.toLowerCase(),
capitalizedEvent$jscomp$inline_1570 =
eventName$jscomp$inline_1568[0].toUpperCase() +
eventName$jscomp$inline_1568.slice(1);
registerSimpleEvent(
domEventName$jscomp$inline_1565,
"on" + capitalizedEvent$jscomp$inline_1566
domEventName$jscomp$inline_1569,
"on" + capitalizedEvent$jscomp$inline_1570
);
}
registerSimpleEvent(ANIMATION_END, "onAnimationEnd");
@@ -12591,6 +12626,12 @@ registerTwoPhaseEvent(
"onCompositionUpdate",
"compositionupdate focusout keydown keypress keyup mousedown".split(" ")
);
registerTwoPhaseEvent(
"onScrollEnd",
"scroll scrollend touchstart touchcancel touchend mousedown mouseup".split(
" "
)
);
var mediaEventTypes =
"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(
" "
@@ -12873,35 +12914,15 @@ function dispatchEventForPluginEventSystem(
case "beforetoggle":
SyntheticEventCtor = SyntheticToggleEvent;
}
var inCapturePhase = 0 !== (eventSystemFlags & 4),
accumulateTargetOnly =
!inCapturePhase &&
("scroll" === domEventName || "scrollend" === domEventName),
reactEventName = inCapturePhase
? null !== reactName
? reactName + "Capture"
: null
: reactName;
inCapturePhase = [];
for (
var instance = targetInst, lastHostComponent;
null !== instance;
) {
var _instance = instance;
lastHostComponent = _instance.stateNode;
_instance = _instance.tag;
(5 !== _instance && 26 !== _instance && 27 !== _instance) ||
null === lastHostComponent ||
null === reactEventName ||
((_instance = getListener(instance, reactEventName)),
null != _instance &&
inCapturePhase.push(
createDispatchListener(instance, _instance, lastHostComponent)
));
if (accumulateTargetOnly) break;
instance = instance.return;
}
var inCapturePhase = 0 !== (eventSystemFlags & 4);
inCapturePhase = accumulateSinglePhaseListeners(
targetInst,
reactName,
nativeEvent.type,
inCapturePhase,
!inCapturePhase &&
("scroll" === domEventName || "scrollend" === domEventName)
);
0 < inCapturePhase.length &&
((reactName = new SyntheticEventCtor(
reactName,
@@ -12943,108 +12964,103 @@ function dispatchEventForPluginEventSystem(
(reactEventType = reactEventType
? getClosestInstanceFromNode(reactEventType)
: null),
null !== reactEventType &&
((accumulateTargetOnly =
getNearestMountedFiber(reactEventType)),
(inCapturePhase = reactEventType.tag),
reactEventType !== accumulateTargetOnly ||
(5 !== inCapturePhase &&
27 !== inCapturePhase &&
6 !== inCapturePhase)))
)
reactEventType = null;
null !== reactEventType)
) {
inCapturePhase = getNearestMountedFiber(reactEventType);
var tag = reactEventType.tag;
if (
reactEventType !== inCapturePhase ||
(5 !== tag && 27 !== tag && 6 !== tag)
)
reactEventType = null;
}
} else (SyntheticEventCtor = null), (reactEventType = targetInst);
if (SyntheticEventCtor !== reactEventType) {
inCapturePhase = SyntheticMouseEvent;
_instance = "onMouseLeave";
reactEventName = "onMouseEnter";
instance = "mouse";
tag = SyntheticMouseEvent;
var leaveEventType = "onMouseLeave",
enterEventType = "onMouseEnter",
eventTypePrefix = "mouse";
if ("pointerout" === domEventName || "pointerover" === domEventName)
(inCapturePhase = SyntheticPointerEvent),
(_instance = "onPointerLeave"),
(reactEventName = "onPointerEnter"),
(instance = "pointer");
accumulateTargetOnly =
(tag = SyntheticPointerEvent),
(leaveEventType = "onPointerLeave"),
(enterEventType = "onPointerEnter"),
(eventTypePrefix = "pointer");
inCapturePhase =
null == SyntheticEventCtor
? reactName
: getNodeFromInstance(SyntheticEventCtor);
lastHostComponent =
var toNode =
null == reactEventType
? reactName
: getNodeFromInstance(reactEventType);
reactName = new inCapturePhase(
_instance,
instance + "leave",
reactName = new tag(
leaveEventType,
eventTypePrefix + "leave",
SyntheticEventCtor,
nativeEvent,
nativeEventTarget
);
reactName.target = accumulateTargetOnly;
reactName.relatedTarget = lastHostComponent;
_instance = null;
reactName.target = inCapturePhase;
reactName.relatedTarget = toNode;
leaveEventType = null;
getClosestInstanceFromNode(nativeEventTarget) === targetInst &&
((inCapturePhase = new inCapturePhase(
reactEventName,
instance + "enter",
((tag = new tag(
enterEventType,
eventTypePrefix + "enter",
reactEventType,
nativeEvent,
nativeEventTarget
)),
(inCapturePhase.target = lastHostComponent),
(inCapturePhase.relatedTarget = accumulateTargetOnly),
(_instance = inCapturePhase));
accumulateTargetOnly = _instance;
(tag.target = toNode),
(tag.relatedTarget = inCapturePhase),
(leaveEventType = tag));
inCapturePhase = leaveEventType;
if (SyntheticEventCtor && reactEventType)
b: {
inCapturePhase = SyntheticEventCtor;
reactEventName = reactEventType;
instance = 0;
tag = SyntheticEventCtor;
enterEventType = reactEventType;
eventTypePrefix = 0;
for (toNode = tag; toNode; toNode = getParent(toNode))
eventTypePrefix++;
toNode = 0;
for (
lastHostComponent = inCapturePhase;
lastHostComponent;
lastHostComponent = getParent(lastHostComponent)
leaveEventType = enterEventType;
leaveEventType;
leaveEventType = getParent(leaveEventType)
)
instance++;
lastHostComponent = 0;
for (
_instance = reactEventName;
_instance;
_instance = getParent(_instance)
)
lastHostComponent++;
for (; 0 < instance - lastHostComponent; )
(inCapturePhase = getParent(inCapturePhase)), instance--;
for (; 0 < lastHostComponent - instance; )
(reactEventName = getParent(reactEventName)),
lastHostComponent--;
for (; instance--; ) {
toNode++;
for (; 0 < eventTypePrefix - toNode; )
(tag = getParent(tag)), eventTypePrefix--;
for (; 0 < toNode - eventTypePrefix; )
(enterEventType = getParent(enterEventType)), toNode--;
for (; eventTypePrefix--; ) {
if (
inCapturePhase === reactEventName ||
(null !== reactEventName &&
inCapturePhase === reactEventName.alternate)
tag === enterEventType ||
(null !== enterEventType &&
tag === enterEventType.alternate)
)
break b;
inCapturePhase = getParent(inCapturePhase);
reactEventName = getParent(reactEventName);
tag = getParent(tag);
enterEventType = getParent(enterEventType);
}
inCapturePhase = null;
tag = null;
}
else inCapturePhase = null;
else tag = null;
null !== SyntheticEventCtor &&
accumulateEnterLeaveListenersForEvent(
dispatchQueue,
reactName,
SyntheticEventCtor,
inCapturePhase,
tag,
!1
);
null !== reactEventType &&
null !== accumulateTargetOnly &&
null !== inCapturePhase &&
accumulateEnterLeaveListenersForEvent(
dispatchQueue,
accumulateTargetOnly,
reactEventType,
inCapturePhase,
reactEventType,
tag,
!0
);
}
@@ -13189,7 +13205,7 @@ function dispatchEventForPluginEventSystem(
listeners: eventType
}),
(handleEventFunc.data = fallbackData));
extractEvents$1(
extractEvents$2(
dispatchQueue,
domEventName,
targetInst,
@@ -13197,6 +13213,58 @@ function dispatchEventForPluginEventSystem(
nativeEventTarget
);
}
a: if (
((fallbackData = 0 !== (eventSystemFlags & 4)),
"scrollend" !== domEventName)
) {
if (!isScrollEndEventSupported && fallbackData)
switch (domEventName) {
case "scroll":
null !== nativeEventTarget &&
debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget);
break;
case "touchstart":
isTouchStarted = !0;
break;
case "touchcancel":
case "touchend":
isTouchStarted = !1;
break;
case "mousedown":
isMouseDown = !0;
break;
case "mouseup":
isMouseDown = !1;
}
} else {
if (!isScrollEndEventSupported && null !== nativeEventTarget)
if (
((eventType = nativeEventTarget[internalScrollTimer]),
null != eventType)
)
clearTimeout(eventType),
(nativeEventTarget[internalScrollTimer] = void 0);
else break a;
targetInst = accumulateSinglePhaseListeners(
targetInst,
"onScrollEnd",
"scrollend",
fallbackData,
!fallbackData
);
0 < targetInst.length &&
((nativeEventTarget = new SyntheticUIEvent(
"onScrollEnd",
"scrollend",
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({
event: nativeEventTarget,
listeners: targetInst
}));
}
processDispatchQueue(dispatchQueue, eventSystemFlags);
});
}
@@ -13207,6 +13275,35 @@ function createDispatchListener(instance, listener, currentTarget) {
currentTarget: currentTarget
};
}
function accumulateSinglePhaseListeners(
targetFiber,
reactName,
nativeEventType,
inCapturePhase,
accumulateTargetOnly
) {
reactName = inCapturePhase
? null !== reactName
? reactName + "Capture"
: null
: reactName;
for (nativeEventType = []; null !== targetFiber; ) {
var _instance = targetFiber;
inCapturePhase = _instance.stateNode;
_instance = _instance.tag;
(5 !== _instance && 26 !== _instance && 27 !== _instance) ||
null === inCapturePhase ||
null === reactName ||
((_instance = getListener(targetFiber, reactName)),
null != _instance &&
nativeEventType.push(
createDispatchListener(targetFiber, _instance, inCapturePhase)
));
if (accumulateTargetOnly) break;
targetFiber = targetFiber.return;
}
return nativeEventType;
}
function accumulateTwoPhaseListeners(targetFiber, reactName) {
for (
var captureName = reactName + "Capture", listeners = [];
@@ -13228,9 +13325,10 @@ function accumulateTwoPhaseListeners(targetFiber, reactName) {
listeners.push(
createDispatchListener(targetFiber, _instance2, stateNode)
));
if (3 === targetFiber.tag) return listeners;
targetFiber = targetFiber.return;
}
return listeners;
return [];
}
function getParent(inst) {
if (null === inst) return null;
@@ -13395,7 +13493,9 @@ function setProp(domElement, tag, key, value, props, prevValue) {
null != value && listenToNonDelegatedEvent("scroll", domElement);
break;
case "onScrollEnd":
null != value && listenToNonDelegatedEvent("scrollend", domElement);
null != value &&
(listenToNonDelegatedEvent("scrollend", domElement),
listenToNonDelegatedEvent("scroll", domElement));
break;
case "dangerouslySetInnerHTML":
if (null != value) {
@@ -13632,7 +13732,9 @@ function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {
null != value && listenToNonDelegatedEvent("scroll", domElement);
break;
case "onScrollEnd":
null != value && listenToNonDelegatedEvent("scrollend", domElement);
null != value &&
(listenToNonDelegatedEvent("scrollend", domElement),
listenToNonDelegatedEvent("scroll", domElement));
break;
case "onClick":
null != value && (domElement.onclick = noop$1);
@@ -16067,16 +16169,16 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
0 === i && attemptExplicitHydrationTarget(target);
}
};
var isomorphicReactPackageVersion$jscomp$inline_1811 = React.version;
var isomorphicReactPackageVersion$jscomp$inline_1816 = React.version;
if (
"19.1.0-native-fb-3607f483-20250227" !==
isomorphicReactPackageVersion$jscomp$inline_1811
"19.1.0-native-fb-605a880c-20250303" !==
isomorphicReactPackageVersion$jscomp$inline_1816
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_1811,
"19.1.0-native-fb-3607f483-20250227"
isomorphicReactPackageVersion$jscomp$inline_1816,
"19.1.0-native-fb-605a880c-20250303"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16096,24 +16198,24 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
null === componentOrElement ? null : componentOrElement.stateNode;
return componentOrElement;
};
var internals$jscomp$inline_2282 = {
var internals$jscomp$inline_2287 = {
bundleType: 0,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227"
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2283 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
var hook$jscomp$inline_2288 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
if (
!hook$jscomp$inline_2283.isDisabled &&
hook$jscomp$inline_2283.supportsFiber
!hook$jscomp$inline_2288.isDisabled &&
hook$jscomp$inline_2288.supportsFiber
)
try {
(rendererID = hook$jscomp$inline_2283.inject(
internals$jscomp$inline_2282
(rendererID = hook$jscomp$inline_2288.inject(
internals$jscomp$inline_2287
)),
(injectedHook = hook$jscomp$inline_2283);
(injectedHook = hook$jscomp$inline_2288);
} catch (err) {}
}
exports.createRoot = function (container, options) {
@@ -16205,4 +16307,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
listenToAllSupportedEvents(container);
return new ReactDOMHydrationRoot(initialChildren);
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<cbc5a9bfe966a8bc16f0f18c737afeca>>
* @generated SignedSource<<e8569b097ef410bce0f264db7408dbe9>>
*/
/*
@@ -790,7 +790,8 @@ var randomKey = Math.random().toString(36).slice(2),
internalEventHandlerListenersKey = "__reactListeners$" + randomKey,
internalEventHandlesSetKey = "__reactHandles$" + randomKey,
internalRootNodeResourcesKey = "__reactResources$" + randomKey,
internalHoistableMarker = "__reactMarker$" + randomKey;
internalHoistableMarker = "__reactMarker$" + randomKey,
internalScrollTimer = "__reactScroll$" + randomKey;
function detachDeletedInstance(node) {
delete node[internalInstanceKey];
delete node[internalPropsKey];
@@ -2138,6 +2139,16 @@ function isTextInputElement(elem) {
? !0
: !1;
}
function isEventSupported(eventNameSuffix) {
if (!canUseDOM) return !1;
eventNameSuffix = "on" + eventNameSuffix;
var isSupported = eventNameSuffix in document;
isSupported ||
((isSupported = document.createElement("div")),
isSupported.setAttribute(eventNameSuffix, "return;"),
(isSupported = "function" === typeof isSupported[eventNameSuffix]));
return isSupported;
}
function createAndAccumulateChangeEvent(
dispatchQueue,
inst,
@@ -2162,7 +2173,7 @@ function createAndAccumulateChangeEvent(
}
var activeElement$1 = null,
activeElementInst$1 = null;
function runEventInBatch(dispatchQueue) {
function runEventInBatch$1(dispatchQueue) {
processDispatchQueue(dispatchQueue, 0);
}
function getInstIfValueChanged(targetInst) {
@@ -2173,22 +2184,10 @@ function getTargetInstForChangeEvent(domEventName, targetInst) {
if ("change" === domEventName) return targetInst;
}
var isInputEventSupported = !1;
if (canUseDOM) {
var JSCompiler_inline_result$jscomp$310;
if (canUseDOM) {
var isSupported$jscomp$inline_442 = "oninput" in document;
if (!isSupported$jscomp$inline_442) {
var element$jscomp$inline_443 = document.createElement("div");
element$jscomp$inline_443.setAttribute("oninput", "return;");
isSupported$jscomp$inline_442 =
"function" === typeof element$jscomp$inline_443.oninput;
}
JSCompiler_inline_result$jscomp$310 = isSupported$jscomp$inline_442;
} else JSCompiler_inline_result$jscomp$310 = !1;
isInputEventSupported =
JSCompiler_inline_result$jscomp$310 &&
(!document.documentMode || 9 < document.documentMode);
}
canUseDOM &&
(isInputEventSupported =
isEventSupported("input") &&
(!document.documentMode || 9 < document.documentMode));
function stopWatchingForValueChange() {
activeElement$1 &&
(activeElement$1.detachEvent("onpropertychange", handlePropertyChange),
@@ -2206,7 +2205,7 @@ function handlePropertyChange(nativeEvent) {
nativeEvent,
getEventTarget(nativeEvent)
);
batchedUpdates$1(runEventInBatch, dispatchQueue);
batchedUpdates$1(runEventInBatch$1, dispatchQueue);
}
}
function handleEventsForInputEventPolyfill(domEventName, target, targetInst) {
@@ -2426,7 +2425,7 @@ var ANIMATION_END = getVendorPrefixedEventName("animationend"),
TRANSITION_END = getVendorPrefixedEventName("transitionend"),
topLevelEventsToReactNames = new Map(),
simpleEventPluginEvents =
"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split(
"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(
" "
);
function registerSimpleEvent(domEventName, reactName) {
@@ -10580,7 +10579,8 @@ function prepareToHydrateHostInstance(fiber) {
listenToNonDelegatedEvent("toggle", instance)),
null != props.onScroll && listenToNonDelegatedEvent("scroll", instance),
null != props.onScrollEnd &&
listenToNonDelegatedEvent("scrollend", instance),
(listenToNonDelegatedEvent("scrollend", instance),
listenToNonDelegatedEvent("scroll", instance)),
null != props.onClick && (instance.onclick = noop$1),
(instance = !0))
: (instance = !1);
@@ -13099,7 +13099,7 @@ function createFormDataWithSubmitter(form, submitter) {
temp.parentNode.removeChild(temp);
return form;
}
function extractEvents$1(
function extractEvents$2(
dispatchQueue,
domEventName,
maybeTargetInst,
@@ -13174,21 +13174,56 @@ function extractEvents$1(
});
}
}
var isScrollEndEventSupported = canUseDOM && isEventSupported("scrollend"),
isTouchStarted = !1,
isMouseDown = !1;
function runEventInBatch(dispatchQueue) {
processDispatchQueue(dispatchQueue, 0);
}
function fireScrollEnd(targetInst, nativeEvent, nativeEventTarget) {
nativeEventTarget[internalScrollTimer] = void 0;
if (isMouseDown || isTouchStarted)
debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget);
else {
var dispatchQueue = [];
targetInst = accumulateTwoPhaseListeners(targetInst, "onScrollEnd");
0 < targetInst.length &&
((nativeEvent = new SyntheticUIEvent(
"onScrollEnd",
"scrollend",
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({ event: nativeEvent, listeners: targetInst }));
batchedUpdates$1(runEventInBatch, dispatchQueue);
}
}
function debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget) {
var existingTimer = nativeEventTarget[internalScrollTimer];
null != existingTimer && clearTimeout(existingTimer);
null !== targetInst &&
((targetInst = setTimeout(
fireScrollEnd.bind(null, targetInst, nativeEvent, nativeEventTarget),
200
)),
(nativeEventTarget[internalScrollTimer] = targetInst));
}
for (
var i$jscomp$inline_1656 = 0;
i$jscomp$inline_1656 < simpleEventPluginEvents.length;
i$jscomp$inline_1656++
var i$jscomp$inline_1660 = 0;
i$jscomp$inline_1660 < simpleEventPluginEvents.length;
i$jscomp$inline_1660++
) {
var eventName$jscomp$inline_1657 =
simpleEventPluginEvents[i$jscomp$inline_1656],
domEventName$jscomp$inline_1658 =
eventName$jscomp$inline_1657.toLowerCase(),
capitalizedEvent$jscomp$inline_1659 =
eventName$jscomp$inline_1657[0].toUpperCase() +
eventName$jscomp$inline_1657.slice(1);
var eventName$jscomp$inline_1661 =
simpleEventPluginEvents[i$jscomp$inline_1660],
domEventName$jscomp$inline_1662 =
eventName$jscomp$inline_1661.toLowerCase(),
capitalizedEvent$jscomp$inline_1663 =
eventName$jscomp$inline_1661[0].toUpperCase() +
eventName$jscomp$inline_1661.slice(1);
registerSimpleEvent(
domEventName$jscomp$inline_1658,
"on" + capitalizedEvent$jscomp$inline_1659
domEventName$jscomp$inline_1662,
"on" + capitalizedEvent$jscomp$inline_1663
);
}
registerSimpleEvent(ANIMATION_END, "onAnimationEnd");
@@ -13233,6 +13268,12 @@ registerTwoPhaseEvent(
"onCompositionUpdate",
"compositionupdate focusout keydown keypress keyup mousedown".split(" ")
);
registerTwoPhaseEvent(
"onScrollEnd",
"scroll scrollend touchstart touchcancel touchend mousedown mouseup".split(
" "
)
);
var mediaEventTypes =
"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(
" "
@@ -13515,35 +13556,15 @@ function dispatchEventForPluginEventSystem(
case "beforetoggle":
SyntheticEventCtor = SyntheticToggleEvent;
}
var inCapturePhase = 0 !== (eventSystemFlags & 4),
accumulateTargetOnly =
!inCapturePhase &&
("scroll" === domEventName || "scrollend" === domEventName),
reactEventName = inCapturePhase
? null !== reactName
? reactName + "Capture"
: null
: reactName;
inCapturePhase = [];
for (
var instance = targetInst, lastHostComponent;
null !== instance;
) {
var _instance = instance;
lastHostComponent = _instance.stateNode;
_instance = _instance.tag;
(5 !== _instance && 26 !== _instance && 27 !== _instance) ||
null === lastHostComponent ||
null === reactEventName ||
((_instance = getListener(instance, reactEventName)),
null != _instance &&
inCapturePhase.push(
createDispatchListener(instance, _instance, lastHostComponent)
));
if (accumulateTargetOnly) break;
instance = instance.return;
}
var inCapturePhase = 0 !== (eventSystemFlags & 4);
inCapturePhase = accumulateSinglePhaseListeners(
targetInst,
reactName,
nativeEvent.type,
inCapturePhase,
!inCapturePhase &&
("scroll" === domEventName || "scrollend" === domEventName)
);
0 < inCapturePhase.length &&
((reactName = new SyntheticEventCtor(
reactName,
@@ -13585,108 +13606,103 @@ function dispatchEventForPluginEventSystem(
(reactEventType = reactEventType
? getClosestInstanceFromNode(reactEventType)
: null),
null !== reactEventType &&
((accumulateTargetOnly =
getNearestMountedFiber(reactEventType)),
(inCapturePhase = reactEventType.tag),
reactEventType !== accumulateTargetOnly ||
(5 !== inCapturePhase &&
27 !== inCapturePhase &&
6 !== inCapturePhase)))
)
reactEventType = null;
null !== reactEventType)
) {
inCapturePhase = getNearestMountedFiber(reactEventType);
var tag = reactEventType.tag;
if (
reactEventType !== inCapturePhase ||
(5 !== tag && 27 !== tag && 6 !== tag)
)
reactEventType = null;
}
} else (SyntheticEventCtor = null), (reactEventType = targetInst);
if (SyntheticEventCtor !== reactEventType) {
inCapturePhase = SyntheticMouseEvent;
_instance = "onMouseLeave";
reactEventName = "onMouseEnter";
instance = "mouse";
tag = SyntheticMouseEvent;
var leaveEventType = "onMouseLeave",
enterEventType = "onMouseEnter",
eventTypePrefix = "mouse";
if ("pointerout" === domEventName || "pointerover" === domEventName)
(inCapturePhase = SyntheticPointerEvent),
(_instance = "onPointerLeave"),
(reactEventName = "onPointerEnter"),
(instance = "pointer");
accumulateTargetOnly =
(tag = SyntheticPointerEvent),
(leaveEventType = "onPointerLeave"),
(enterEventType = "onPointerEnter"),
(eventTypePrefix = "pointer");
inCapturePhase =
null == SyntheticEventCtor
? reactName
: getNodeFromInstance(SyntheticEventCtor);
lastHostComponent =
var toNode =
null == reactEventType
? reactName
: getNodeFromInstance(reactEventType);
reactName = new inCapturePhase(
_instance,
instance + "leave",
reactName = new tag(
leaveEventType,
eventTypePrefix + "leave",
SyntheticEventCtor,
nativeEvent,
nativeEventTarget
);
reactName.target = accumulateTargetOnly;
reactName.relatedTarget = lastHostComponent;
_instance = null;
reactName.target = inCapturePhase;
reactName.relatedTarget = toNode;
leaveEventType = null;
getClosestInstanceFromNode(nativeEventTarget) === targetInst &&
((inCapturePhase = new inCapturePhase(
reactEventName,
instance + "enter",
((tag = new tag(
enterEventType,
eventTypePrefix + "enter",
reactEventType,
nativeEvent,
nativeEventTarget
)),
(inCapturePhase.target = lastHostComponent),
(inCapturePhase.relatedTarget = accumulateTargetOnly),
(_instance = inCapturePhase));
accumulateTargetOnly = _instance;
(tag.target = toNode),
(tag.relatedTarget = inCapturePhase),
(leaveEventType = tag));
inCapturePhase = leaveEventType;
if (SyntheticEventCtor && reactEventType)
b: {
inCapturePhase = SyntheticEventCtor;
reactEventName = reactEventType;
instance = 0;
tag = SyntheticEventCtor;
enterEventType = reactEventType;
eventTypePrefix = 0;
for (toNode = tag; toNode; toNode = getParent(toNode))
eventTypePrefix++;
toNode = 0;
for (
lastHostComponent = inCapturePhase;
lastHostComponent;
lastHostComponent = getParent(lastHostComponent)
leaveEventType = enterEventType;
leaveEventType;
leaveEventType = getParent(leaveEventType)
)
instance++;
lastHostComponent = 0;
for (
_instance = reactEventName;
_instance;
_instance = getParent(_instance)
)
lastHostComponent++;
for (; 0 < instance - lastHostComponent; )
(inCapturePhase = getParent(inCapturePhase)), instance--;
for (; 0 < lastHostComponent - instance; )
(reactEventName = getParent(reactEventName)),
lastHostComponent--;
for (; instance--; ) {
toNode++;
for (; 0 < eventTypePrefix - toNode; )
(tag = getParent(tag)), eventTypePrefix--;
for (; 0 < toNode - eventTypePrefix; )
(enterEventType = getParent(enterEventType)), toNode--;
for (; eventTypePrefix--; ) {
if (
inCapturePhase === reactEventName ||
(null !== reactEventName &&
inCapturePhase === reactEventName.alternate)
tag === enterEventType ||
(null !== enterEventType &&
tag === enterEventType.alternate)
)
break b;
inCapturePhase = getParent(inCapturePhase);
reactEventName = getParent(reactEventName);
tag = getParent(tag);
enterEventType = getParent(enterEventType);
}
inCapturePhase = null;
tag = null;
}
else inCapturePhase = null;
else tag = null;
null !== SyntheticEventCtor &&
accumulateEnterLeaveListenersForEvent(
dispatchQueue,
reactName,
SyntheticEventCtor,
inCapturePhase,
tag,
!1
);
null !== reactEventType &&
null !== accumulateTargetOnly &&
null !== inCapturePhase &&
accumulateEnterLeaveListenersForEvent(
dispatchQueue,
accumulateTargetOnly,
reactEventType,
inCapturePhase,
reactEventType,
tag,
!0
);
}
@@ -13831,7 +13847,7 @@ function dispatchEventForPluginEventSystem(
listeners: eventType
}),
(handleEventFunc.data = fallbackData));
extractEvents$1(
extractEvents$2(
dispatchQueue,
domEventName,
targetInst,
@@ -13839,6 +13855,58 @@ function dispatchEventForPluginEventSystem(
nativeEventTarget
);
}
a: if (
((fallbackData = 0 !== (eventSystemFlags & 4)),
"scrollend" !== domEventName)
) {
if (!isScrollEndEventSupported && fallbackData)
switch (domEventName) {
case "scroll":
null !== nativeEventTarget &&
debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget);
break;
case "touchstart":
isTouchStarted = !0;
break;
case "touchcancel":
case "touchend":
isTouchStarted = !1;
break;
case "mousedown":
isMouseDown = !0;
break;
case "mouseup":
isMouseDown = !1;
}
} else {
if (!isScrollEndEventSupported && null !== nativeEventTarget)
if (
((eventType = nativeEventTarget[internalScrollTimer]),
null != eventType)
)
clearTimeout(eventType),
(nativeEventTarget[internalScrollTimer] = void 0);
else break a;
targetInst = accumulateSinglePhaseListeners(
targetInst,
"onScrollEnd",
"scrollend",
fallbackData,
!fallbackData
);
0 < targetInst.length &&
((nativeEventTarget = new SyntheticUIEvent(
"onScrollEnd",
"scrollend",
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({
event: nativeEventTarget,
listeners: targetInst
}));
}
processDispatchQueue(dispatchQueue, eventSystemFlags);
});
}
@@ -13849,6 +13917,35 @@ function createDispatchListener(instance, listener, currentTarget) {
currentTarget: currentTarget
};
}
function accumulateSinglePhaseListeners(
targetFiber,
reactName,
nativeEventType,
inCapturePhase,
accumulateTargetOnly
) {
reactName = inCapturePhase
? null !== reactName
? reactName + "Capture"
: null
: reactName;
for (nativeEventType = []; null !== targetFiber; ) {
var _instance = targetFiber;
inCapturePhase = _instance.stateNode;
_instance = _instance.tag;
(5 !== _instance && 26 !== _instance && 27 !== _instance) ||
null === inCapturePhase ||
null === reactName ||
((_instance = getListener(targetFiber, reactName)),
null != _instance &&
nativeEventType.push(
createDispatchListener(targetFiber, _instance, inCapturePhase)
));
if (accumulateTargetOnly) break;
targetFiber = targetFiber.return;
}
return nativeEventType;
}
function accumulateTwoPhaseListeners(targetFiber, reactName) {
for (
var captureName = reactName + "Capture", listeners = [];
@@ -13870,9 +13967,10 @@ function accumulateTwoPhaseListeners(targetFiber, reactName) {
listeners.push(
createDispatchListener(targetFiber, _instance2, stateNode)
));
if (3 === targetFiber.tag) return listeners;
targetFiber = targetFiber.return;
}
return listeners;
return [];
}
function getParent(inst) {
if (null === inst) return null;
@@ -14037,7 +14135,9 @@ function setProp(domElement, tag, key, value, props, prevValue) {
null != value && listenToNonDelegatedEvent("scroll", domElement);
break;
case "onScrollEnd":
null != value && listenToNonDelegatedEvent("scrollend", domElement);
null != value &&
(listenToNonDelegatedEvent("scrollend", domElement),
listenToNonDelegatedEvent("scroll", domElement));
break;
case "dangerouslySetInnerHTML":
if (null != value) {
@@ -14274,7 +14374,9 @@ function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {
null != value && listenToNonDelegatedEvent("scroll", domElement);
break;
case "onScrollEnd":
null != value && listenToNonDelegatedEvent("scrollend", domElement);
null != value &&
(listenToNonDelegatedEvent("scrollend", domElement),
listenToNonDelegatedEvent("scroll", domElement));
break;
case "onClick":
null != value && (domElement.onclick = noop$1);
@@ -16717,16 +16819,16 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
0 === i && attemptExplicitHydrationTarget(target);
}
};
var isomorphicReactPackageVersion$jscomp$inline_1906 = React.version;
var isomorphicReactPackageVersion$jscomp$inline_1911 = React.version;
if (
"19.1.0-native-fb-3607f483-20250227" !==
isomorphicReactPackageVersion$jscomp$inline_1906
"19.1.0-native-fb-605a880c-20250303" !==
isomorphicReactPackageVersion$jscomp$inline_1911
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_1906,
"19.1.0-native-fb-3607f483-20250227"
isomorphicReactPackageVersion$jscomp$inline_1911,
"19.1.0-native-fb-605a880c-20250303"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16746,12 +16848,12 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
null === componentOrElement ? null : componentOrElement.stateNode;
return componentOrElement;
};
var internals$jscomp$inline_1913 = {
var internals$jscomp$inline_1918 = {
bundleType: 0,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227",
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303",
getLaneLabelMap: function () {
for (
var map = new Map(), lane = 1, index$294 = 0;
@@ -16769,16 +16871,16 @@ var internals$jscomp$inline_1913 = {
}
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2342 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
var hook$jscomp$inline_2347 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
if (
!hook$jscomp$inline_2342.isDisabled &&
hook$jscomp$inline_2342.supportsFiber
!hook$jscomp$inline_2347.isDisabled &&
hook$jscomp$inline_2347.supportsFiber
)
try {
(rendererID = hook$jscomp$inline_2342.inject(
internals$jscomp$inline_1913
(rendererID = hook$jscomp$inline_2347.inject(
internals$jscomp$inline_1918
)),
(injectedHook = hook$jscomp$inline_2342);
(injectedHook = hook$jscomp$inline_2347);
} catch (err) {}
}
exports.createRoot = function (container, options) {
@@ -16870,4 +16972,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
listenToAllSupportedEvents(container);
return new ReactDOMHydrationRoot(initialChildren);
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<2410527e0f8cc63d2ad8807e985ed8d3>>
* @generated SignedSource<<23fa6851fddaee8032a63e845649553c>>
*/
/*
@@ -712,7 +712,8 @@ var randomKey = Math.random().toString(36).slice(2),
internalEventHandlerListenersKey = "__reactListeners$" + randomKey,
internalEventHandlesSetKey = "__reactHandles$" + randomKey,
internalRootNodeResourcesKey = "__reactResources$" + randomKey,
internalHoistableMarker = "__reactMarker$" + randomKey;
internalHoistableMarker = "__reactMarker$" + randomKey,
internalScrollTimer = "__reactScroll$" + randomKey;
function detachDeletedInstance(node) {
delete node[internalInstanceKey];
delete node[internalPropsKey];
@@ -2060,6 +2061,16 @@ function isTextInputElement(elem) {
? !0
: !1;
}
function isEventSupported(eventNameSuffix) {
if (!canUseDOM) return !1;
eventNameSuffix = "on" + eventNameSuffix;
var isSupported = eventNameSuffix in document;
isSupported ||
((isSupported = document.createElement("div")),
isSupported.setAttribute(eventNameSuffix, "return;"),
(isSupported = "function" === typeof isSupported[eventNameSuffix]));
return isSupported;
}
function createAndAccumulateChangeEvent(
dispatchQueue,
inst,
@@ -2084,7 +2095,7 @@ function createAndAccumulateChangeEvent(
}
var activeElement$1 = null,
activeElementInst$1 = null;
function runEventInBatch(dispatchQueue) {
function runEventInBatch$1(dispatchQueue) {
processDispatchQueue(dispatchQueue, 0);
}
function getInstIfValueChanged(targetInst) {
@@ -2095,22 +2106,10 @@ function getTargetInstForChangeEvent(domEventName, targetInst) {
if ("change" === domEventName) return targetInst;
}
var isInputEventSupported = !1;
if (canUseDOM) {
var JSCompiler_inline_result$jscomp$294;
if (canUseDOM) {
var isSupported$jscomp$inline_427 = "oninput" in document;
if (!isSupported$jscomp$inline_427) {
var element$jscomp$inline_428 = document.createElement("div");
element$jscomp$inline_428.setAttribute("oninput", "return;");
isSupported$jscomp$inline_427 =
"function" === typeof element$jscomp$inline_428.oninput;
}
JSCompiler_inline_result$jscomp$294 = isSupported$jscomp$inline_427;
} else JSCompiler_inline_result$jscomp$294 = !1;
isInputEventSupported =
JSCompiler_inline_result$jscomp$294 &&
(!document.documentMode || 9 < document.documentMode);
}
canUseDOM &&
(isInputEventSupported =
isEventSupported("input") &&
(!document.documentMode || 9 < document.documentMode));
function stopWatchingForValueChange() {
activeElement$1 &&
(activeElement$1.detachEvent("onpropertychange", handlePropertyChange),
@@ -2128,7 +2127,7 @@ function handlePropertyChange(nativeEvent) {
nativeEvent,
getEventTarget(nativeEvent)
);
batchedUpdates$2(runEventInBatch, dispatchQueue);
batchedUpdates$2(runEventInBatch$1, dispatchQueue);
}
}
function handleEventsForInputEventPolyfill(domEventName, target, targetInst) {
@@ -2348,7 +2347,7 @@ var ANIMATION_END = getVendorPrefixedEventName("animationend"),
TRANSITION_END = getVendorPrefixedEventName("transitionend"),
topLevelEventsToReactNames = new Map(),
simpleEventPluginEvents =
"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split(
"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(
" "
);
function registerSimpleEvent(domEventName, reactName) {
@@ -10139,7 +10138,8 @@ function prepareToHydrateHostInstance(fiber) {
listenToNonDelegatedEvent("toggle", instance)),
null != props.onScroll && listenToNonDelegatedEvent("scroll", instance),
null != props.onScrollEnd &&
listenToNonDelegatedEvent("scrollend", instance),
(listenToNonDelegatedEvent("scrollend", instance),
listenToNonDelegatedEvent("scroll", instance)),
null != props.onClick && (instance.onclick = noop$2),
(instance = !0))
: (instance = !1);
@@ -12457,7 +12457,7 @@ function createFormDataWithSubmitter(form, submitter) {
temp.parentNode.removeChild(temp);
return form;
}
function extractEvents$1(
function extractEvents$2(
dispatchQueue,
domEventName,
maybeTargetInst,
@@ -12532,21 +12532,56 @@ function extractEvents$1(
});
}
}
var isScrollEndEventSupported = canUseDOM && isEventSupported("scrollend"),
isTouchStarted = !1,
isMouseDown = !1;
function runEventInBatch(dispatchQueue) {
processDispatchQueue(dispatchQueue, 0);
}
function fireScrollEnd(targetInst, nativeEvent, nativeEventTarget) {
nativeEventTarget[internalScrollTimer] = void 0;
if (isMouseDown || isTouchStarted)
debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget);
else {
var dispatchQueue = [];
targetInst = accumulateTwoPhaseListeners(targetInst, "onScrollEnd");
0 < targetInst.length &&
((nativeEvent = new SyntheticUIEvent(
"onScrollEnd",
"scrollend",
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({ event: nativeEvent, listeners: targetInst }));
batchedUpdates$2(runEventInBatch, dispatchQueue);
}
}
function debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget) {
var existingTimer = nativeEventTarget[internalScrollTimer];
null != existingTimer && clearTimeout(existingTimer);
null !== targetInst &&
((targetInst = setTimeout(
fireScrollEnd.bind(null, targetInst, nativeEvent, nativeEventTarget),
200
)),
(nativeEventTarget[internalScrollTimer] = targetInst));
}
for (
var i$jscomp$inline_1564 = 0;
i$jscomp$inline_1564 < simpleEventPluginEvents.length;
i$jscomp$inline_1564++
var i$jscomp$inline_1568 = 0;
i$jscomp$inline_1568 < simpleEventPluginEvents.length;
i$jscomp$inline_1568++
) {
var eventName$jscomp$inline_1565 =
simpleEventPluginEvents[i$jscomp$inline_1564],
domEventName$jscomp$inline_1566 =
eventName$jscomp$inline_1565.toLowerCase(),
capitalizedEvent$jscomp$inline_1567 =
eventName$jscomp$inline_1565[0].toUpperCase() +
eventName$jscomp$inline_1565.slice(1);
var eventName$jscomp$inline_1569 =
simpleEventPluginEvents[i$jscomp$inline_1568],
domEventName$jscomp$inline_1570 =
eventName$jscomp$inline_1569.toLowerCase(),
capitalizedEvent$jscomp$inline_1571 =
eventName$jscomp$inline_1569[0].toUpperCase() +
eventName$jscomp$inline_1569.slice(1);
registerSimpleEvent(
domEventName$jscomp$inline_1566,
"on" + capitalizedEvent$jscomp$inline_1567
domEventName$jscomp$inline_1570,
"on" + capitalizedEvent$jscomp$inline_1571
);
}
registerSimpleEvent(ANIMATION_END, "onAnimationEnd");
@@ -12591,6 +12626,12 @@ registerTwoPhaseEvent(
"onCompositionUpdate",
"compositionupdate focusout keydown keypress keyup mousedown".split(" ")
);
registerTwoPhaseEvent(
"onScrollEnd",
"scroll scrollend touchstart touchcancel touchend mousedown mouseup".split(
" "
)
);
var mediaEventTypes =
"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(
" "
@@ -12873,35 +12914,15 @@ function dispatchEventForPluginEventSystem(
case "beforetoggle":
SyntheticEventCtor = SyntheticToggleEvent;
}
var inCapturePhase = 0 !== (eventSystemFlags & 4),
accumulateTargetOnly =
!inCapturePhase &&
("scroll" === domEventName || "scrollend" === domEventName),
reactEventName = inCapturePhase
? null !== reactName
? reactName + "Capture"
: null
: reactName;
inCapturePhase = [];
for (
var instance = targetInst, lastHostComponent;
null !== instance;
) {
var _instance = instance;
lastHostComponent = _instance.stateNode;
_instance = _instance.tag;
(5 !== _instance && 26 !== _instance && 27 !== _instance) ||
null === lastHostComponent ||
null === reactEventName ||
((_instance = getListener(instance, reactEventName)),
null != _instance &&
inCapturePhase.push(
createDispatchListener(instance, _instance, lastHostComponent)
));
if (accumulateTargetOnly) break;
instance = instance.return;
}
var inCapturePhase = 0 !== (eventSystemFlags & 4);
inCapturePhase = accumulateSinglePhaseListeners(
targetInst,
reactName,
nativeEvent.type,
inCapturePhase,
!inCapturePhase &&
("scroll" === domEventName || "scrollend" === domEventName)
);
0 < inCapturePhase.length &&
((reactName = new SyntheticEventCtor(
reactName,
@@ -12943,108 +12964,103 @@ function dispatchEventForPluginEventSystem(
(reactEventType = reactEventType
? getClosestInstanceFromNode(reactEventType)
: null),
null !== reactEventType &&
((accumulateTargetOnly =
getNearestMountedFiber(reactEventType)),
(inCapturePhase = reactEventType.tag),
reactEventType !== accumulateTargetOnly ||
(5 !== inCapturePhase &&
27 !== inCapturePhase &&
6 !== inCapturePhase)))
)
reactEventType = null;
null !== reactEventType)
) {
inCapturePhase = getNearestMountedFiber(reactEventType);
var tag = reactEventType.tag;
if (
reactEventType !== inCapturePhase ||
(5 !== tag && 27 !== tag && 6 !== tag)
)
reactEventType = null;
}
} else (SyntheticEventCtor = null), (reactEventType = targetInst);
if (SyntheticEventCtor !== reactEventType) {
inCapturePhase = SyntheticMouseEvent;
_instance = "onMouseLeave";
reactEventName = "onMouseEnter";
instance = "mouse";
tag = SyntheticMouseEvent;
var leaveEventType = "onMouseLeave",
enterEventType = "onMouseEnter",
eventTypePrefix = "mouse";
if ("pointerout" === domEventName || "pointerover" === domEventName)
(inCapturePhase = SyntheticPointerEvent),
(_instance = "onPointerLeave"),
(reactEventName = "onPointerEnter"),
(instance = "pointer");
accumulateTargetOnly =
(tag = SyntheticPointerEvent),
(leaveEventType = "onPointerLeave"),
(enterEventType = "onPointerEnter"),
(eventTypePrefix = "pointer");
inCapturePhase =
null == SyntheticEventCtor
? reactName
: getNodeFromInstance(SyntheticEventCtor);
lastHostComponent =
var toNode =
null == reactEventType
? reactName
: getNodeFromInstance(reactEventType);
reactName = new inCapturePhase(
_instance,
instance + "leave",
reactName = new tag(
leaveEventType,
eventTypePrefix + "leave",
SyntheticEventCtor,
nativeEvent,
nativeEventTarget
);
reactName.target = accumulateTargetOnly;
reactName.relatedTarget = lastHostComponent;
_instance = null;
reactName.target = inCapturePhase;
reactName.relatedTarget = toNode;
leaveEventType = null;
getClosestInstanceFromNode(nativeEventTarget) === targetInst &&
((inCapturePhase = new inCapturePhase(
reactEventName,
instance + "enter",
((tag = new tag(
enterEventType,
eventTypePrefix + "enter",
reactEventType,
nativeEvent,
nativeEventTarget
)),
(inCapturePhase.target = lastHostComponent),
(inCapturePhase.relatedTarget = accumulateTargetOnly),
(_instance = inCapturePhase));
accumulateTargetOnly = _instance;
(tag.target = toNode),
(tag.relatedTarget = inCapturePhase),
(leaveEventType = tag));
inCapturePhase = leaveEventType;
if (SyntheticEventCtor && reactEventType)
b: {
inCapturePhase = SyntheticEventCtor;
reactEventName = reactEventType;
instance = 0;
tag = SyntheticEventCtor;
enterEventType = reactEventType;
eventTypePrefix = 0;
for (toNode = tag; toNode; toNode = getParent(toNode))
eventTypePrefix++;
toNode = 0;
for (
lastHostComponent = inCapturePhase;
lastHostComponent;
lastHostComponent = getParent(lastHostComponent)
leaveEventType = enterEventType;
leaveEventType;
leaveEventType = getParent(leaveEventType)
)
instance++;
lastHostComponent = 0;
for (
_instance = reactEventName;
_instance;
_instance = getParent(_instance)
)
lastHostComponent++;
for (; 0 < instance - lastHostComponent; )
(inCapturePhase = getParent(inCapturePhase)), instance--;
for (; 0 < lastHostComponent - instance; )
(reactEventName = getParent(reactEventName)),
lastHostComponent--;
for (; instance--; ) {
toNode++;
for (; 0 < eventTypePrefix - toNode; )
(tag = getParent(tag)), eventTypePrefix--;
for (; 0 < toNode - eventTypePrefix; )
(enterEventType = getParent(enterEventType)), toNode--;
for (; eventTypePrefix--; ) {
if (
inCapturePhase === reactEventName ||
(null !== reactEventName &&
inCapturePhase === reactEventName.alternate)
tag === enterEventType ||
(null !== enterEventType &&
tag === enterEventType.alternate)
)
break b;
inCapturePhase = getParent(inCapturePhase);
reactEventName = getParent(reactEventName);
tag = getParent(tag);
enterEventType = getParent(enterEventType);
}
inCapturePhase = null;
tag = null;
}
else inCapturePhase = null;
else tag = null;
null !== SyntheticEventCtor &&
accumulateEnterLeaveListenersForEvent(
dispatchQueue,
reactName,
SyntheticEventCtor,
inCapturePhase,
tag,
!1
);
null !== reactEventType &&
null !== accumulateTargetOnly &&
null !== inCapturePhase &&
accumulateEnterLeaveListenersForEvent(
dispatchQueue,
accumulateTargetOnly,
reactEventType,
inCapturePhase,
reactEventType,
tag,
!0
);
}
@@ -13189,7 +13205,7 @@ function dispatchEventForPluginEventSystem(
listeners: eventType
}),
(handleEventFunc.data = fallbackData));
extractEvents$1(
extractEvents$2(
dispatchQueue,
domEventName,
targetInst,
@@ -13197,6 +13213,58 @@ function dispatchEventForPluginEventSystem(
nativeEventTarget
);
}
a: if (
((fallbackData = 0 !== (eventSystemFlags & 4)),
"scrollend" !== domEventName)
) {
if (!isScrollEndEventSupported && fallbackData)
switch (domEventName) {
case "scroll":
null !== nativeEventTarget &&
debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget);
break;
case "touchstart":
isTouchStarted = !0;
break;
case "touchcancel":
case "touchend":
isTouchStarted = !1;
break;
case "mousedown":
isMouseDown = !0;
break;
case "mouseup":
isMouseDown = !1;
}
} else {
if (!isScrollEndEventSupported && null !== nativeEventTarget)
if (
((eventType = nativeEventTarget[internalScrollTimer]),
null != eventType)
)
clearTimeout(eventType),
(nativeEventTarget[internalScrollTimer] = void 0);
else break a;
targetInst = accumulateSinglePhaseListeners(
targetInst,
"onScrollEnd",
"scrollend",
fallbackData,
!fallbackData
);
0 < targetInst.length &&
((nativeEventTarget = new SyntheticUIEvent(
"onScrollEnd",
"scrollend",
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({
event: nativeEventTarget,
listeners: targetInst
}));
}
processDispatchQueue(dispatchQueue, eventSystemFlags);
});
}
@@ -13207,6 +13275,35 @@ function createDispatchListener(instance, listener, currentTarget) {
currentTarget: currentTarget
};
}
function accumulateSinglePhaseListeners(
targetFiber,
reactName,
nativeEventType,
inCapturePhase,
accumulateTargetOnly
) {
reactName = inCapturePhase
? null !== reactName
? reactName + "Capture"
: null
: reactName;
for (nativeEventType = []; null !== targetFiber; ) {
var _instance = targetFiber;
inCapturePhase = _instance.stateNode;
_instance = _instance.tag;
(5 !== _instance && 26 !== _instance && 27 !== _instance) ||
null === inCapturePhase ||
null === reactName ||
((_instance = getListener(targetFiber, reactName)),
null != _instance &&
nativeEventType.push(
createDispatchListener(targetFiber, _instance, inCapturePhase)
));
if (accumulateTargetOnly) break;
targetFiber = targetFiber.return;
}
return nativeEventType;
}
function accumulateTwoPhaseListeners(targetFiber, reactName) {
for (
var captureName = reactName + "Capture", listeners = [];
@@ -13228,9 +13325,10 @@ function accumulateTwoPhaseListeners(targetFiber, reactName) {
listeners.push(
createDispatchListener(targetFiber, _instance2, stateNode)
));
if (3 === targetFiber.tag) return listeners;
targetFiber = targetFiber.return;
}
return listeners;
return [];
}
function getParent(inst) {
if (null === inst) return null;
@@ -13395,7 +13493,9 @@ function setProp(domElement, tag, key, value, props, prevValue) {
null != value && listenToNonDelegatedEvent("scroll", domElement);
break;
case "onScrollEnd":
null != value && listenToNonDelegatedEvent("scrollend", domElement);
null != value &&
(listenToNonDelegatedEvent("scrollend", domElement),
listenToNonDelegatedEvent("scroll", domElement));
break;
case "dangerouslySetInnerHTML":
if (null != value) {
@@ -13632,7 +13732,9 @@ function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {
null != value && listenToNonDelegatedEvent("scroll", domElement);
break;
case "onScrollEnd":
null != value && listenToNonDelegatedEvent("scrollend", domElement);
null != value &&
(listenToNonDelegatedEvent("scrollend", domElement),
listenToNonDelegatedEvent("scroll", domElement));
break;
case "onClick":
null != value && (domElement.onclick = noop$2);
@@ -16078,16 +16180,16 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
0 === i && attemptExplicitHydrationTarget(target);
}
};
var isomorphicReactPackageVersion$jscomp$inline_1812 = React.version;
var isomorphicReactPackageVersion$jscomp$inline_1817 = React.version;
if (
"19.1.0-native-fb-3607f483-20250227" !==
isomorphicReactPackageVersion$jscomp$inline_1812
"19.1.0-native-fb-605a880c-20250303" !==
isomorphicReactPackageVersion$jscomp$inline_1817
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_1812,
"19.1.0-native-fb-3607f483-20250227"
isomorphicReactPackageVersion$jscomp$inline_1817,
"19.1.0-native-fb-605a880c-20250303"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16107,24 +16209,24 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
null === componentOrElement ? null : componentOrElement.stateNode;
return componentOrElement;
};
var internals$jscomp$inline_2285 = {
var internals$jscomp$inline_2290 = {
bundleType: 0,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227"
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2286 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
var hook$jscomp$inline_2291 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
if (
!hook$jscomp$inline_2286.isDisabled &&
hook$jscomp$inline_2286.supportsFiber
!hook$jscomp$inline_2291.isDisabled &&
hook$jscomp$inline_2291.supportsFiber
)
try {
(rendererID = hook$jscomp$inline_2286.inject(
internals$jscomp$inline_2285
(rendererID = hook$jscomp$inline_2291.inject(
internals$jscomp$inline_2290
)),
(injectedHook = hook$jscomp$inline_2286);
(injectedHook = hook$jscomp$inline_2291);
} catch (err) {}
}
function noop() {}
@@ -16370,4 +16472,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<e7f787060ef90fc6da7e183b7f89e57e>>
* @generated SignedSource<<df8cbf34c17778ced2df5ae517b4433f>>
*/
/*
@@ -794,7 +794,8 @@ var randomKey = Math.random().toString(36).slice(2),
internalEventHandlerListenersKey = "__reactListeners$" + randomKey,
internalEventHandlesSetKey = "__reactHandles$" + randomKey,
internalRootNodeResourcesKey = "__reactResources$" + randomKey,
internalHoistableMarker = "__reactMarker$" + randomKey;
internalHoistableMarker = "__reactMarker$" + randomKey,
internalScrollTimer = "__reactScroll$" + randomKey;
function detachDeletedInstance(node) {
delete node[internalInstanceKey];
delete node[internalPropsKey];
@@ -2142,6 +2143,16 @@ function isTextInputElement(elem) {
? !0
: !1;
}
function isEventSupported(eventNameSuffix) {
if (!canUseDOM) return !1;
eventNameSuffix = "on" + eventNameSuffix;
var isSupported = eventNameSuffix in document;
isSupported ||
((isSupported = document.createElement("div")),
isSupported.setAttribute(eventNameSuffix, "return;"),
(isSupported = "function" === typeof isSupported[eventNameSuffix]));
return isSupported;
}
function createAndAccumulateChangeEvent(
dispatchQueue,
inst,
@@ -2166,7 +2177,7 @@ function createAndAccumulateChangeEvent(
}
var activeElement$1 = null,
activeElementInst$1 = null;
function runEventInBatch(dispatchQueue) {
function runEventInBatch$1(dispatchQueue) {
processDispatchQueue(dispatchQueue, 0);
}
function getInstIfValueChanged(targetInst) {
@@ -2177,22 +2188,10 @@ function getTargetInstForChangeEvent(domEventName, targetInst) {
if ("change" === domEventName) return targetInst;
}
var isInputEventSupported = !1;
if (canUseDOM) {
var JSCompiler_inline_result$jscomp$310;
if (canUseDOM) {
var isSupported$jscomp$inline_443 = "oninput" in document;
if (!isSupported$jscomp$inline_443) {
var element$jscomp$inline_444 = document.createElement("div");
element$jscomp$inline_444.setAttribute("oninput", "return;");
isSupported$jscomp$inline_443 =
"function" === typeof element$jscomp$inline_444.oninput;
}
JSCompiler_inline_result$jscomp$310 = isSupported$jscomp$inline_443;
} else JSCompiler_inline_result$jscomp$310 = !1;
isInputEventSupported =
JSCompiler_inline_result$jscomp$310 &&
(!document.documentMode || 9 < document.documentMode);
}
canUseDOM &&
(isInputEventSupported =
isEventSupported("input") &&
(!document.documentMode || 9 < document.documentMode));
function stopWatchingForValueChange() {
activeElement$1 &&
(activeElement$1.detachEvent("onpropertychange", handlePropertyChange),
@@ -2210,7 +2209,7 @@ function handlePropertyChange(nativeEvent) {
nativeEvent,
getEventTarget(nativeEvent)
);
batchedUpdates$2(runEventInBatch, dispatchQueue);
batchedUpdates$2(runEventInBatch$1, dispatchQueue);
}
}
function handleEventsForInputEventPolyfill(domEventName, target, targetInst) {
@@ -2430,7 +2429,7 @@ var ANIMATION_END = getVendorPrefixedEventName("animationend"),
TRANSITION_END = getVendorPrefixedEventName("transitionend"),
topLevelEventsToReactNames = new Map(),
simpleEventPluginEvents =
"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split(
"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(
" "
);
function registerSimpleEvent(domEventName, reactName) {
@@ -10584,7 +10583,8 @@ function prepareToHydrateHostInstance(fiber) {
listenToNonDelegatedEvent("toggle", instance)),
null != props.onScroll && listenToNonDelegatedEvent("scroll", instance),
null != props.onScrollEnd &&
listenToNonDelegatedEvent("scrollend", instance),
(listenToNonDelegatedEvent("scrollend", instance),
listenToNonDelegatedEvent("scroll", instance)),
null != props.onClick && (instance.onclick = noop$2),
(instance = !0))
: (instance = !1);
@@ -13103,7 +13103,7 @@ function createFormDataWithSubmitter(form, submitter) {
temp.parentNode.removeChild(temp);
return form;
}
function extractEvents$1(
function extractEvents$2(
dispatchQueue,
domEventName,
maybeTargetInst,
@@ -13178,21 +13178,56 @@ function extractEvents$1(
});
}
}
var isScrollEndEventSupported = canUseDOM && isEventSupported("scrollend"),
isTouchStarted = !1,
isMouseDown = !1;
function runEventInBatch(dispatchQueue) {
processDispatchQueue(dispatchQueue, 0);
}
function fireScrollEnd(targetInst, nativeEvent, nativeEventTarget) {
nativeEventTarget[internalScrollTimer] = void 0;
if (isMouseDown || isTouchStarted)
debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget);
else {
var dispatchQueue = [];
targetInst = accumulateTwoPhaseListeners(targetInst, "onScrollEnd");
0 < targetInst.length &&
((nativeEvent = new SyntheticUIEvent(
"onScrollEnd",
"scrollend",
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({ event: nativeEvent, listeners: targetInst }));
batchedUpdates$2(runEventInBatch, dispatchQueue);
}
}
function debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget) {
var existingTimer = nativeEventTarget[internalScrollTimer];
null != existingTimer && clearTimeout(existingTimer);
null !== targetInst &&
((targetInst = setTimeout(
fireScrollEnd.bind(null, targetInst, nativeEvent, nativeEventTarget),
200
)),
(nativeEventTarget[internalScrollTimer] = targetInst));
}
for (
var i$jscomp$inline_1657 = 0;
i$jscomp$inline_1657 < simpleEventPluginEvents.length;
i$jscomp$inline_1657++
var i$jscomp$inline_1661 = 0;
i$jscomp$inline_1661 < simpleEventPluginEvents.length;
i$jscomp$inline_1661++
) {
var eventName$jscomp$inline_1658 =
simpleEventPluginEvents[i$jscomp$inline_1657],
domEventName$jscomp$inline_1659 =
eventName$jscomp$inline_1658.toLowerCase(),
capitalizedEvent$jscomp$inline_1660 =
eventName$jscomp$inline_1658[0].toUpperCase() +
eventName$jscomp$inline_1658.slice(1);
var eventName$jscomp$inline_1662 =
simpleEventPluginEvents[i$jscomp$inline_1661],
domEventName$jscomp$inline_1663 =
eventName$jscomp$inline_1662.toLowerCase(),
capitalizedEvent$jscomp$inline_1664 =
eventName$jscomp$inline_1662[0].toUpperCase() +
eventName$jscomp$inline_1662.slice(1);
registerSimpleEvent(
domEventName$jscomp$inline_1659,
"on" + capitalizedEvent$jscomp$inline_1660
domEventName$jscomp$inline_1663,
"on" + capitalizedEvent$jscomp$inline_1664
);
}
registerSimpleEvent(ANIMATION_END, "onAnimationEnd");
@@ -13237,6 +13272,12 @@ registerTwoPhaseEvent(
"onCompositionUpdate",
"compositionupdate focusout keydown keypress keyup mousedown".split(" ")
);
registerTwoPhaseEvent(
"onScrollEnd",
"scroll scrollend touchstart touchcancel touchend mousedown mouseup".split(
" "
)
);
var mediaEventTypes =
"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(
" "
@@ -13519,35 +13560,15 @@ function dispatchEventForPluginEventSystem(
case "beforetoggle":
SyntheticEventCtor = SyntheticToggleEvent;
}
var inCapturePhase = 0 !== (eventSystemFlags & 4),
accumulateTargetOnly =
!inCapturePhase &&
("scroll" === domEventName || "scrollend" === domEventName),
reactEventName = inCapturePhase
? null !== reactName
? reactName + "Capture"
: null
: reactName;
inCapturePhase = [];
for (
var instance = targetInst, lastHostComponent;
null !== instance;
) {
var _instance = instance;
lastHostComponent = _instance.stateNode;
_instance = _instance.tag;
(5 !== _instance && 26 !== _instance && 27 !== _instance) ||
null === lastHostComponent ||
null === reactEventName ||
((_instance = getListener(instance, reactEventName)),
null != _instance &&
inCapturePhase.push(
createDispatchListener(instance, _instance, lastHostComponent)
));
if (accumulateTargetOnly) break;
instance = instance.return;
}
var inCapturePhase = 0 !== (eventSystemFlags & 4);
inCapturePhase = accumulateSinglePhaseListeners(
targetInst,
reactName,
nativeEvent.type,
inCapturePhase,
!inCapturePhase &&
("scroll" === domEventName || "scrollend" === domEventName)
);
0 < inCapturePhase.length &&
((reactName = new SyntheticEventCtor(
reactName,
@@ -13589,108 +13610,103 @@ function dispatchEventForPluginEventSystem(
(reactEventType = reactEventType
? getClosestInstanceFromNode(reactEventType)
: null),
null !== reactEventType &&
((accumulateTargetOnly =
getNearestMountedFiber(reactEventType)),
(inCapturePhase = reactEventType.tag),
reactEventType !== accumulateTargetOnly ||
(5 !== inCapturePhase &&
27 !== inCapturePhase &&
6 !== inCapturePhase)))
)
reactEventType = null;
null !== reactEventType)
) {
inCapturePhase = getNearestMountedFiber(reactEventType);
var tag = reactEventType.tag;
if (
reactEventType !== inCapturePhase ||
(5 !== tag && 27 !== tag && 6 !== tag)
)
reactEventType = null;
}
} else (SyntheticEventCtor = null), (reactEventType = targetInst);
if (SyntheticEventCtor !== reactEventType) {
inCapturePhase = SyntheticMouseEvent;
_instance = "onMouseLeave";
reactEventName = "onMouseEnter";
instance = "mouse";
tag = SyntheticMouseEvent;
var leaveEventType = "onMouseLeave",
enterEventType = "onMouseEnter",
eventTypePrefix = "mouse";
if ("pointerout" === domEventName || "pointerover" === domEventName)
(inCapturePhase = SyntheticPointerEvent),
(_instance = "onPointerLeave"),
(reactEventName = "onPointerEnter"),
(instance = "pointer");
accumulateTargetOnly =
(tag = SyntheticPointerEvent),
(leaveEventType = "onPointerLeave"),
(enterEventType = "onPointerEnter"),
(eventTypePrefix = "pointer");
inCapturePhase =
null == SyntheticEventCtor
? reactName
: getNodeFromInstance(SyntheticEventCtor);
lastHostComponent =
var toNode =
null == reactEventType
? reactName
: getNodeFromInstance(reactEventType);
reactName = new inCapturePhase(
_instance,
instance + "leave",
reactName = new tag(
leaveEventType,
eventTypePrefix + "leave",
SyntheticEventCtor,
nativeEvent,
nativeEventTarget
);
reactName.target = accumulateTargetOnly;
reactName.relatedTarget = lastHostComponent;
_instance = null;
reactName.target = inCapturePhase;
reactName.relatedTarget = toNode;
leaveEventType = null;
getClosestInstanceFromNode(nativeEventTarget) === targetInst &&
((inCapturePhase = new inCapturePhase(
reactEventName,
instance + "enter",
((tag = new tag(
enterEventType,
eventTypePrefix + "enter",
reactEventType,
nativeEvent,
nativeEventTarget
)),
(inCapturePhase.target = lastHostComponent),
(inCapturePhase.relatedTarget = accumulateTargetOnly),
(_instance = inCapturePhase));
accumulateTargetOnly = _instance;
(tag.target = toNode),
(tag.relatedTarget = inCapturePhase),
(leaveEventType = tag));
inCapturePhase = leaveEventType;
if (SyntheticEventCtor && reactEventType)
b: {
inCapturePhase = SyntheticEventCtor;
reactEventName = reactEventType;
instance = 0;
tag = SyntheticEventCtor;
enterEventType = reactEventType;
eventTypePrefix = 0;
for (toNode = tag; toNode; toNode = getParent(toNode))
eventTypePrefix++;
toNode = 0;
for (
lastHostComponent = inCapturePhase;
lastHostComponent;
lastHostComponent = getParent(lastHostComponent)
leaveEventType = enterEventType;
leaveEventType;
leaveEventType = getParent(leaveEventType)
)
instance++;
lastHostComponent = 0;
for (
_instance = reactEventName;
_instance;
_instance = getParent(_instance)
)
lastHostComponent++;
for (; 0 < instance - lastHostComponent; )
(inCapturePhase = getParent(inCapturePhase)), instance--;
for (; 0 < lastHostComponent - instance; )
(reactEventName = getParent(reactEventName)),
lastHostComponent--;
for (; instance--; ) {
toNode++;
for (; 0 < eventTypePrefix - toNode; )
(tag = getParent(tag)), eventTypePrefix--;
for (; 0 < toNode - eventTypePrefix; )
(enterEventType = getParent(enterEventType)), toNode--;
for (; eventTypePrefix--; ) {
if (
inCapturePhase === reactEventName ||
(null !== reactEventName &&
inCapturePhase === reactEventName.alternate)
tag === enterEventType ||
(null !== enterEventType &&
tag === enterEventType.alternate)
)
break b;
inCapturePhase = getParent(inCapturePhase);
reactEventName = getParent(reactEventName);
tag = getParent(tag);
enterEventType = getParent(enterEventType);
}
inCapturePhase = null;
tag = null;
}
else inCapturePhase = null;
else tag = null;
null !== SyntheticEventCtor &&
accumulateEnterLeaveListenersForEvent(
dispatchQueue,
reactName,
SyntheticEventCtor,
inCapturePhase,
tag,
!1
);
null !== reactEventType &&
null !== accumulateTargetOnly &&
null !== inCapturePhase &&
accumulateEnterLeaveListenersForEvent(
dispatchQueue,
accumulateTargetOnly,
reactEventType,
inCapturePhase,
reactEventType,
tag,
!0
);
}
@@ -13835,7 +13851,7 @@ function dispatchEventForPluginEventSystem(
listeners: eventType
}),
(handleEventFunc.data = fallbackData));
extractEvents$1(
extractEvents$2(
dispatchQueue,
domEventName,
targetInst,
@@ -13843,6 +13859,58 @@ function dispatchEventForPluginEventSystem(
nativeEventTarget
);
}
a: if (
((fallbackData = 0 !== (eventSystemFlags & 4)),
"scrollend" !== domEventName)
) {
if (!isScrollEndEventSupported && fallbackData)
switch (domEventName) {
case "scroll":
null !== nativeEventTarget &&
debounceScrollEnd(targetInst, nativeEvent, nativeEventTarget);
break;
case "touchstart":
isTouchStarted = !0;
break;
case "touchcancel":
case "touchend":
isTouchStarted = !1;
break;
case "mousedown":
isMouseDown = !0;
break;
case "mouseup":
isMouseDown = !1;
}
} else {
if (!isScrollEndEventSupported && null !== nativeEventTarget)
if (
((eventType = nativeEventTarget[internalScrollTimer]),
null != eventType)
)
clearTimeout(eventType),
(nativeEventTarget[internalScrollTimer] = void 0);
else break a;
targetInst = accumulateSinglePhaseListeners(
targetInst,
"onScrollEnd",
"scrollend",
fallbackData,
!fallbackData
);
0 < targetInst.length &&
((nativeEventTarget = new SyntheticUIEvent(
"onScrollEnd",
"scrollend",
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({
event: nativeEventTarget,
listeners: targetInst
}));
}
processDispatchQueue(dispatchQueue, eventSystemFlags);
});
}
@@ -13853,6 +13921,35 @@ function createDispatchListener(instance, listener, currentTarget) {
currentTarget: currentTarget
};
}
function accumulateSinglePhaseListeners(
targetFiber,
reactName,
nativeEventType,
inCapturePhase,
accumulateTargetOnly
) {
reactName = inCapturePhase
? null !== reactName
? reactName + "Capture"
: null
: reactName;
for (nativeEventType = []; null !== targetFiber; ) {
var _instance = targetFiber;
inCapturePhase = _instance.stateNode;
_instance = _instance.tag;
(5 !== _instance && 26 !== _instance && 27 !== _instance) ||
null === inCapturePhase ||
null === reactName ||
((_instance = getListener(targetFiber, reactName)),
null != _instance &&
nativeEventType.push(
createDispatchListener(targetFiber, _instance, inCapturePhase)
));
if (accumulateTargetOnly) break;
targetFiber = targetFiber.return;
}
return nativeEventType;
}
function accumulateTwoPhaseListeners(targetFiber, reactName) {
for (
var captureName = reactName + "Capture", listeners = [];
@@ -13874,9 +13971,10 @@ function accumulateTwoPhaseListeners(targetFiber, reactName) {
listeners.push(
createDispatchListener(targetFiber, _instance2, stateNode)
));
if (3 === targetFiber.tag) return listeners;
targetFiber = targetFiber.return;
}
return listeners;
return [];
}
function getParent(inst) {
if (null === inst) return null;
@@ -14041,7 +14139,9 @@ function setProp(domElement, tag, key, value, props, prevValue) {
null != value && listenToNonDelegatedEvent("scroll", domElement);
break;
case "onScrollEnd":
null != value && listenToNonDelegatedEvent("scrollend", domElement);
null != value &&
(listenToNonDelegatedEvent("scrollend", domElement),
listenToNonDelegatedEvent("scroll", domElement));
break;
case "dangerouslySetInnerHTML":
if (null != value) {
@@ -14278,7 +14378,9 @@ function setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {
null != value && listenToNonDelegatedEvent("scroll", domElement);
break;
case "onScrollEnd":
null != value && listenToNonDelegatedEvent("scrollend", domElement);
null != value &&
(listenToNonDelegatedEvent("scrollend", domElement),
listenToNonDelegatedEvent("scroll", domElement));
break;
case "onClick":
null != value && (domElement.onclick = noop$2);
@@ -16732,16 +16834,16 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
0 === i && attemptExplicitHydrationTarget(target);
}
};
var isomorphicReactPackageVersion$jscomp$inline_1907 = React.version;
var isomorphicReactPackageVersion$jscomp$inline_1912 = React.version;
if (
"19.1.0-native-fb-3607f483-20250227" !==
isomorphicReactPackageVersion$jscomp$inline_1907
"19.1.0-native-fb-605a880c-20250303" !==
isomorphicReactPackageVersion$jscomp$inline_1912
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_1907,
"19.1.0-native-fb-3607f483-20250227"
isomorphicReactPackageVersion$jscomp$inline_1912,
"19.1.0-native-fb-605a880c-20250303"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16761,12 +16863,12 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
null === componentOrElement ? null : componentOrElement.stateNode;
return componentOrElement;
};
var internals$jscomp$inline_1914 = {
var internals$jscomp$inline_1919 = {
bundleType: 0,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227",
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303",
getLaneLabelMap: function () {
for (
var map = new Map(), lane = 1, index$294 = 0;
@@ -16784,16 +16886,16 @@ var internals$jscomp$inline_1914 = {
}
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2345 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
var hook$jscomp$inline_2350 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
if (
!hook$jscomp$inline_2345.isDisabled &&
hook$jscomp$inline_2345.supportsFiber
!hook$jscomp$inline_2350.isDisabled &&
hook$jscomp$inline_2350.supportsFiber
)
try {
(rendererID = hook$jscomp$inline_2345.inject(
internals$jscomp$inline_1914
(rendererID = hook$jscomp$inline_2350.inject(
internals$jscomp$inline_1919
)),
(injectedHook = hook$jscomp$inline_2345);
(injectedHook = hook$jscomp$inline_2350);
} catch (err) {}
}
function noop() {}
@@ -17039,7 +17141,7 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<930f599dca7018c145432134226f20d6>>
* @generated SignedSource<<669338504d303c325214118f7eecc14a>>
*/
"use strict";
@@ -15601,10 +15601,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227"
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -15749,5 +15749,5 @@ __DEV__ &&
flushSyncWorkAcrossRoots_impl(0, !0));
}
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
})();
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<eae2fa44a2efd5c5d485b3fd8b6e72dc>>
* @generated SignedSource<<0b105a96c2af5d24dfea2738fcfb1441>>
*/
"use strict";
@@ -9819,10 +9819,10 @@ function wrapFiber(fiber) {
}
var internals$jscomp$inline_1412 = {
bundleType: 0,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227"
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1413 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -9958,4 +9958,4 @@ exports.unstable_batchedUpdates = function (fn, a) {
flushSyncWorkAcrossRoots_impl(0, !0));
}
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<44aa91d8f3dd7d93ac914b8b76f0ca0a>>
* @generated SignedSource<<2b5b4c8372ffa619ede87f24db9e982f>>
*/
"use strict";
@@ -10390,10 +10390,10 @@ function wrapFiber(fiber) {
}
var internals$jscomp$inline_1223 = {
bundleType: 0,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227",
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303",
getLaneLabelMap: function () {
for (
var map = new Map(), lane = 1, index$147 = 0;
@@ -10544,4 +10544,4 @@ exports.unstable_batchedUpdates = function (fn, a) {
flushSyncWorkAcrossRoots_impl(0, !0));
}
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<68467059597cac9592d767e34d81845f>>
* @generated SignedSource<<dbce80ef5b96e57e4350b19c0c9006ad>>
*/
"use strict";
@@ -1415,7 +1415,7 @@ __DEV__ &&
exports.useTransition = function () {
return resolveDispatcher().useTransition();
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<070cb546585ddb9c1297b982049a0e0c>>
* @generated SignedSource<<2ffd022edfd647d643e111e27051966b>>
*/
"use strict";
@@ -603,4 +603,4 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<d63f2ca452fb9e77278b77a58ac98482>>
* @generated SignedSource<<8e1aa69606c62d846aec7a9b2c18e680>>
*/
"use strict";
@@ -607,7 +607,7 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.1.0-native-fb-3607f483-20250227";
exports.version = "19.1.0-native-fb-605a880c-20250303";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -1 +1 @@
3607f4838a8f4a87160da36aa26bb1432d7a5f11
605a880c8c5191e9f8c52468458709cd17a486c1
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<eba89b0e06353889f798ddfac12609f9>>
* @generated SignedSource<<a8ac44890377589b2d6e8a6a7d35d60b>>
*/
"use strict";
@@ -17438,10 +17438,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227"
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<e3c26e1ad5433d5838fb226b892d7832>>
* @generated SignedSource<<9faa7c0d93a89cdecbe00304d4a9c386>>
*/
"use strict";
@@ -11089,10 +11089,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1243 = {
bundleType: 0,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227"
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1243.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<b793288c85f9d88444d5d9aa009a509a>>
* @generated SignedSource<<c7854c6a2bebf674817d913cc649fdb3>>
*/
"use strict";
@@ -11742,10 +11742,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1336 = {
bundleType: 0,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227"
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1336.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<5853c8af35ae5c4d630f2419c1b5da22>>
* @generated SignedSource<<90a23ac1529af2b633ba777ddbbd302d>>
*/
"use strict";
@@ -17599,11 +17599,11 @@ __DEV__ &&
shouldSuspendImpl = newShouldSuspendImpl;
};
var isomorphicReactPackageVersion = React.version;
if ("19.1.0-native-fb-3607f483-20250227" !== isomorphicReactPackageVersion)
if ("19.1.0-native-fb-605a880c-20250303" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-native-renderer: 19.1.0-native-fb-3607f483-20250227\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-native-renderer: 19.1.0-native-fb-605a880c-20250303\nLearn more: https://react.dev/warnings/version-mismatch")
);
if (
"function" !==
@@ -17629,10 +17629,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227"
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<357a3dd4bac8ed4e0efdacace61995d3>>
* @generated SignedSource<<cc51c5bb597f230e5ae61695d4b32598>>
*/
"use strict";
@@ -11174,11 +11174,11 @@ function updateContainer(element, container, parentComponent, callback) {
return lane;
}
var isomorphicReactPackageVersion = React.version;
if ("19.1.0-native-fb-3607f483-20250227" !== isomorphicReactPackageVersion)
if ("19.1.0-native-fb-605a880c-20250303" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-native-renderer: 19.1.0-native-fb-3607f483-20250227\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-native-renderer: 19.1.0-native-fb-605a880c-20250303\nLearn more: https://react.dev/warnings/version-mismatch")
);
if (
"function" !==
@@ -11227,10 +11227,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1288 = {
bundleType: 0,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227"
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1288.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<77f294eb66c72679c608998813187441>>
* @generated SignedSource<<159ca70943d0d7806d187170dc70140c>>
*/
"use strict";
@@ -11827,11 +11827,11 @@ function updateContainer(element, container, parentComponent, callback) {
return lane;
}
var isomorphicReactPackageVersion = React.version;
if ("19.1.0-native-fb-3607f483-20250227" !== isomorphicReactPackageVersion)
if ("19.1.0-native-fb-605a880c-20250303" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-native-renderer: 19.1.0-native-fb-3607f483-20250227\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-native-renderer: 19.1.0-native-fb-605a880c-20250303\nLearn more: https://react.dev/warnings/version-mismatch")
);
if (
"function" !==
@@ -11880,10 +11880,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1381 = {
bundleType: 0,
version: "19.1.0-native-fb-3607f483-20250227",
version: "19.1.0-native-fb-605a880c-20250303",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.1.0-native-fb-3607f483-20250227"
reconcilerVersion: "19.1.0-native-fb-605a880c-20250303"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1381.rendererConfig = extraDevToolsConfig);