Skip to content

Commit 22b1a6b

Browse files
committed
Support ref cleanup function for imperative handle refs (#28910)
Support ref cleanup function for imperative handle refs DiffTrain build for [ed71a3a](ed71a3a)
1 parent 0c0e017 commit 22b1a6b

21 files changed

Lines changed: 175 additions & 135 deletions

compiled/facebook-www/REVISION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
cb151849e13f46ec64570519cb93d5939fb60cab
1+
ed71a3ad2965617c27c6e7ca7577f15b8ca4152c

compiled/facebook-www/ReactART-dev.classic.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ function _assertThisInitialized(self) {
6363
return self;
6464
}
6565

66-
var ReactVersion = '19.0.0-www-classic-82bda7e4';
66+
var ReactVersion = '19.0.0-www-classic-017c7d00';
6767

6868
var LegacyRoot = 0;
6969
var ConcurrentRoot = 1;
@@ -9499,9 +9499,14 @@ function imperativeHandleEffect(create, ref) {
94999499
if (typeof ref === 'function') {
95009500
var refCallback = ref;
95019501
var inst = create();
9502-
refCallback(inst);
9502+
var refCleanup = refCallback(inst);
95039503
return function () {
9504-
refCallback(null);
9504+
if (typeof refCleanup === 'function') {
9505+
// $FlowFixMe[incompatible-use] we need to assume no parameters
9506+
refCleanup();
9507+
} else {
9508+
refCallback(null);
9509+
}
95059510
};
95069511
} else if (ref !== null && ref !== undefined) {
95079512
var refObject = ref;

compiled/facebook-www/ReactART-dev.modern.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ function _assertThisInitialized(self) {
6363
return self;
6464
}
6565

66-
var ReactVersion = '19.0.0-www-modern-3ebdca5b';
66+
var ReactVersion = '19.0.0-www-modern-a482793f';
6767

6868
var LegacyRoot = 0;
6969
var ConcurrentRoot = 1;
@@ -9288,9 +9288,14 @@ function imperativeHandleEffect(create, ref) {
92889288
if (typeof ref === 'function') {
92899289
var refCallback = ref;
92909290
var inst = create();
9291-
refCallback(inst);
9291+
var refCleanup = refCallback(inst);
92929292
return function () {
9293-
refCallback(null);
9293+
if (typeof refCleanup === 'function') {
9294+
// $FlowFixMe[incompatible-use] we need to assume no parameters
9295+
refCleanup();
9296+
} else {
9297+
refCallback(null);
9298+
}
92949299
};
92959300
} else if (ref !== null && ref !== undefined) {
92969301
var refObject = ref;

compiled/facebook-www/ReactART-prod.classic.js

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3243,14 +3243,13 @@ function updateLayoutEffect(create, deps) {
32433243
return updateEffectImpl(4, 4, create, deps);
32443244
}
32453245
function imperativeHandleEffect(create, ref) {
3246-
if ("function" === typeof ref)
3247-
return (
3248-
(create = create()),
3249-
ref(create),
3250-
function () {
3251-
ref(null);
3252-
}
3253-
);
3246+
if ("function" === typeof ref) {
3247+
create = create();
3248+
var refCleanup = ref(create);
3249+
return function () {
3250+
"function" === typeof refCleanup ? refCleanup() : ref(null);
3251+
};
3252+
}
32543253
if (null !== ref && void 0 !== ref)
32553254
return (
32563255
(create = create()),
@@ -10628,7 +10627,7 @@ var slice = Array.prototype.slice,
1062810627
return null;
1062910628
},
1063010629
bundleType: 0,
10631-
version: "19.0.0-www-classic-6eb34c6f",
10630+
version: "19.0.0-www-classic-7fa474dd",
1063210631
rendererPackageName: "react-art"
1063310632
};
1063410633
var internals$jscomp$inline_1331 = {
@@ -10659,7 +10658,7 @@ var internals$jscomp$inline_1331 = {
1065910658
scheduleRoot: null,
1066010659
setRefreshHandler: null,
1066110660
getCurrentFiber: null,
10662-
reconcilerVersion: "19.0.0-www-classic-6eb34c6f"
10661+
reconcilerVersion: "19.0.0-www-classic-7fa474dd"
1066310662
};
1066410663
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1066510664
var hook$jscomp$inline_1332 = __REACT_DEVTOOLS_GLOBAL_HOOK__;

compiled/facebook-www/ReactART-prod.modern.js

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3041,14 +3041,13 @@ function updateLayoutEffect(create, deps) {
30413041
return updateEffectImpl(4, 4, create, deps);
30423042
}
30433043
function imperativeHandleEffect(create, ref) {
3044-
if ("function" === typeof ref)
3045-
return (
3046-
(create = create()),
3047-
ref(create),
3048-
function () {
3049-
ref(null);
3050-
}
3051-
);
3044+
if ("function" === typeof ref) {
3045+
create = create();
3046+
var refCleanup = ref(create);
3047+
return function () {
3048+
"function" === typeof refCleanup ? refCleanup() : ref(null);
3049+
};
3050+
}
30523051
if (null !== ref && void 0 !== ref)
30533052
return (
30543053
(create = create()),
@@ -10107,7 +10106,7 @@ var slice = Array.prototype.slice,
1010710106
return null;
1010810107
},
1010910108
bundleType: 0,
10110-
version: "19.0.0-www-modern-fad207b4",
10109+
version: "19.0.0-www-modern-f1a1a01e",
1011110110
rendererPackageName: "react-art"
1011210111
};
1011310112
var internals$jscomp$inline_1316 = {
@@ -10138,7 +10137,7 @@ var internals$jscomp$inline_1316 = {
1013810137
scheduleRoot: null,
1013910138
setRefreshHandler: null,
1014010139
getCurrentFiber: null,
10141-
reconcilerVersion: "19.0.0-www-modern-fad207b4"
10140+
reconcilerVersion: "19.0.0-www-modern-f1a1a01e"
1014210141
};
1014310142
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1014410143
var hook$jscomp$inline_1317 = __REACT_DEVTOOLS_GLOBAL_HOOK__;

compiled/facebook-www/ReactDOM-dev.classic.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13179,9 +13179,14 @@ function imperativeHandleEffect(create, ref) {
1317913179
if (typeof ref === 'function') {
1318013180
var refCallback = ref;
1318113181
var inst = create();
13182-
refCallback(inst);
13182+
var refCleanup = refCallback(inst);
1318313183
return function () {
13184-
refCallback(null);
13184+
if (typeof refCleanup === 'function') {
13185+
// $FlowFixMe[incompatible-use] we need to assume no parameters
13186+
refCleanup();
13187+
} else {
13188+
refCallback(null);
13189+
}
1318513190
};
1318613191
} else if (ref !== null && ref !== undefined) {
1318713192
var refObject = ref;
@@ -30838,7 +30843,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
3083830843
return root;
3083930844
}
3084030845

30841-
var ReactVersion = '19.0.0-www-classic-fa4f664d';
30846+
var ReactVersion = '19.0.0-www-classic-ef216d44';
3084230847

3084330848
function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.
3084430849
implementation) {

compiled/facebook-www/ReactDOM-dev.modern.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12920,9 +12920,14 @@ function imperativeHandleEffect(create, ref) {
1292012920
if (typeof ref === 'function') {
1292112921
var refCallback = ref;
1292212922
var inst = create();
12923-
refCallback(inst);
12923+
var refCleanup = refCallback(inst);
1292412924
return function () {
12925-
refCallback(null);
12925+
if (typeof refCleanup === 'function') {
12926+
// $FlowFixMe[incompatible-use] we need to assume no parameters
12927+
refCleanup();
12928+
} else {
12929+
refCallback(null);
12930+
}
1292612931
};
1292712932
} else if (ref !== null && ref !== undefined) {
1292812933
var refObject = ref;
@@ -30013,7 +30018,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
3001330018
return root;
3001430019
}
3001530020

30016-
var ReactVersion = '19.0.0-www-modern-e85a4fdc';
30021+
var ReactVersion = '19.0.0-www-modern-cc3909ff';
3001730022

3001830023
function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.
3001930024
implementation) {

compiled/facebook-www/ReactDOM-prod.classic.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4009,14 +4009,13 @@ function updateLayoutEffect(create, deps) {
40094009
return updateEffectImpl(4, 4, create, deps);
40104010
}
40114011
function imperativeHandleEffect(create, ref) {
4012-
if ("function" === typeof ref)
4013-
return (
4014-
(create = create()),
4015-
ref(create),
4016-
function () {
4017-
ref(null);
4018-
}
4019-
);
4012+
if ("function" === typeof ref) {
4013+
create = create();
4014+
var refCleanup = ref(create);
4015+
return function () {
4016+
"function" === typeof refCleanup ? refCleanup() : ref(null);
4017+
};
4018+
}
40204019
if (null !== ref && void 0 !== ref)
40214020
return (
40224021
(create = create()),
@@ -17002,7 +17001,7 @@ Internals.Events = [
1700217001
var devToolsConfig$jscomp$inline_1725 = {
1700317002
findFiberByHostInstance: getClosestInstanceFromNode,
1700417003
bundleType: 0,
17005-
version: "19.0.0-www-classic-ea2724fc",
17004+
version: "19.0.0-www-classic-4a0aa6db",
1700617005
rendererPackageName: "react-dom"
1700717006
};
1700817007
var internals$jscomp$inline_2169 = {
@@ -17032,7 +17031,7 @@ var internals$jscomp$inline_2169 = {
1703217031
scheduleRoot: null,
1703317032
setRefreshHandler: null,
1703417033
getCurrentFiber: null,
17035-
reconcilerVersion: "19.0.0-www-classic-ea2724fc"
17034+
reconcilerVersion: "19.0.0-www-classic-4a0aa6db"
1703617035
};
1703717036
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1703817037
var hook$jscomp$inline_2170 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17536,4 +17535,4 @@ exports.useFormState = function (action, initialState, permalink) {
1753617535
exports.useFormStatus = function () {
1753717536
return ReactSharedInternals.H.useHostTransitionStatus();
1753817537
};
17539-
exports.version = "19.0.0-www-classic-ea2724fc";
17538+
exports.version = "19.0.0-www-classic-4a0aa6db";

compiled/facebook-www/ReactDOM-prod.modern.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3797,14 +3797,13 @@ function updateLayoutEffect(create, deps) {
37973797
return updateEffectImpl(4, 4, create, deps);
37983798
}
37993799
function imperativeHandleEffect(create, ref) {
3800-
if ("function" === typeof ref)
3801-
return (
3802-
(create = create()),
3803-
ref(create),
3804-
function () {
3805-
ref(null);
3806-
}
3807-
);
3800+
if ("function" === typeof ref) {
3801+
create = create();
3802+
var refCleanup = ref(create);
3803+
return function () {
3804+
"function" === typeof refCleanup ? refCleanup() : ref(null);
3805+
};
3806+
}
38083807
if (null !== ref && void 0 !== ref)
38093808
return (
38103809
(create = create()),
@@ -16369,7 +16368,7 @@ Internals.Events = [
1636916368
var devToolsConfig$jscomp$inline_1692 = {
1637016369
findFiberByHostInstance: getClosestInstanceFromNode,
1637116370
bundleType: 0,
16372-
version: "19.0.0-www-modern-49e9a3fc",
16371+
version: "19.0.0-www-modern-5d32f0b5",
1637316372
rendererPackageName: "react-dom"
1637416373
};
1637516374
var internals$jscomp$inline_2159 = {
@@ -16399,7 +16398,7 @@ var internals$jscomp$inline_2159 = {
1639916398
scheduleRoot: null,
1640016399
setRefreshHandler: null,
1640116400
getCurrentFiber: null,
16402-
reconcilerVersion: "19.0.0-www-modern-49e9a3fc"
16401+
reconcilerVersion: "19.0.0-www-modern-5d32f0b5"
1640316402
};
1640416403
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1640516404
var hook$jscomp$inline_2160 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -16773,4 +16772,4 @@ exports.useFormState = function (action, initialState, permalink) {
1677316772
exports.useFormStatus = function () {
1677416773
return ReactSharedInternals.H.useHostTransitionStatus();
1677516774
};
16776-
exports.version = "19.0.0-www-modern-49e9a3fc";
16775+
exports.version = "19.0.0-www-modern-5d32f0b5";

compiled/facebook-www/ReactDOM-profiling.classic.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4145,14 +4145,13 @@ function updateLayoutEffect(create, deps) {
41454145
return updateEffectImpl(4, 4, create, deps);
41464146
}
41474147
function imperativeHandleEffect(create, ref) {
4148-
if ("function" === typeof ref)
4149-
return (
4150-
(create = create()),
4151-
ref(create),
4152-
function () {
4153-
ref(null);
4154-
}
4155-
);
4148+
if ("function" === typeof ref) {
4149+
create = create();
4150+
var refCleanup = ref(create);
4151+
return function () {
4152+
"function" === typeof refCleanup ? refCleanup() : ref(null);
4153+
};
4154+
}
41564155
if (null !== ref && void 0 !== ref)
41574156
return (
41584157
(create = create()),
@@ -17750,7 +17749,7 @@ Internals.Events = [
1775017749
var devToolsConfig$jscomp$inline_1811 = {
1775117750
findFiberByHostInstance: getClosestInstanceFromNode,
1775217751
bundleType: 0,
17753-
version: "19.0.0-www-classic-9ca8043c",
17752+
version: "19.0.0-www-classic-193f2253",
1775417753
rendererPackageName: "react-dom"
1775517754
};
1775617755
(function (internals) {
@@ -17794,7 +17793,7 @@ var devToolsConfig$jscomp$inline_1811 = {
1779417793
scheduleRoot: null,
1779517794
setRefreshHandler: null,
1779617795
getCurrentFiber: null,
17797-
reconcilerVersion: "19.0.0-www-classic-9ca8043c"
17796+
reconcilerVersion: "19.0.0-www-classic-193f2253"
1779817797
});
1779917798
function ReactDOMRoot(internalRoot) {
1780017799
this._internalRoot = internalRoot;
@@ -18285,7 +18284,7 @@ exports.useFormState = function (action, initialState, permalink) {
1828518284
exports.useFormStatus = function () {
1828618285
return ReactSharedInternals.H.useHostTransitionStatus();
1828718286
};
18288-
exports.version = "19.0.0-www-classic-9ca8043c";
18287+
exports.version = "19.0.0-www-classic-193f2253";
1828918288
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
1829018289
"function" ===
1829118290
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)