Skip to content

Commit 1f2f55a

Browse files
committed
[cleanup] fully roll out warnAboutSpreadingKeyToJSX (#26080)
I fully enabled this flag internally now and unless I see complications, we should be able to clean this up in the code. DiffTrain build for [1f5ce59](1f5ce59) [View git log for this commit](https://github.com/facebook/react/commits/1f5ce59dd7b6869b1a17ede65aa301002ef31d4b)
1 parent a99bb5c commit 1f2f55a

37 files changed

+144
-169
lines changed

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

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ var disableInputAttributeSyncing =
111111
dynamicFeatureFlags.enableTrustedTypesIntegration,
112112
disableSchedulerTimeoutBasedOnReactExpirationTime =
113113
dynamicFeatureFlags.disableSchedulerTimeoutBasedOnReactExpirationTime,
114-
warnAboutSpreadingKeyToJSX = dynamicFeatureFlags.warnAboutSpreadingKeyToJSX,
115114
replayFailedUnitOfWorkWithInvokeGuardedCallback =
116115
dynamicFeatureFlags.replayFailedUnitOfWorkWithInvokeGuardedCallback,
117116
enableFilterEmptyStringAttributesDOM =
@@ -1487,36 +1486,34 @@ function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
14871486
}
14881487
}
14891488

1490-
if (warnAboutSpreadingKeyToJSX) {
1491-
if (hasOwnProperty.call(props, "key")) {
1492-
var componentName = getComponentNameFromType(type);
1493-
var keys = Object.keys(props).filter(function(k) {
1494-
return k !== "key";
1495-
});
1496-
var beforeExample =
1497-
keys.length > 0
1498-
? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
1499-
: "{key: someKey}";
1500-
1501-
if (!didWarnAboutKeySpread[componentName + beforeExample]) {
1502-
var afterExample =
1503-
keys.length > 0 ? "{" + keys.join(": ..., ") + ": ...}" : "{}";
1489+
if (hasOwnProperty.call(props, "key")) {
1490+
var componentName = getComponentNameFromType(type);
1491+
var keys = Object.keys(props).filter(function(k) {
1492+
return k !== "key";
1493+
});
1494+
var beforeExample =
1495+
keys.length > 0
1496+
? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
1497+
: "{key: someKey}";
15041498

1505-
error(
1506-
'A props object containing a "key" prop is being spread into JSX:\n' +
1507-
" let props = %s;\n" +
1508-
" <%s {...props} />\n" +
1509-
"React keys must be passed directly to JSX without using spread:\n" +
1510-
" let props = %s;\n" +
1511-
" <%s key={someKey} {...props} />",
1512-
beforeExample,
1513-
componentName,
1514-
afterExample,
1515-
componentName
1516-
);
1499+
if (!didWarnAboutKeySpread[componentName + beforeExample]) {
1500+
var afterExample =
1501+
keys.length > 0 ? "{" + keys.join(": ..., ") + ": ...}" : "{}";
15171502

1518-
didWarnAboutKeySpread[componentName + beforeExample] = true;
1519-
}
1503+
error(
1504+
'A props object containing a "key" prop is being spread into JSX:\n' +
1505+
" let props = %s;\n" +
1506+
" <%s {...props} />\n" +
1507+
"React keys must be passed directly to JSX without using spread:\n" +
1508+
" let props = %s;\n" +
1509+
" <%s key={someKey} {...props} />",
1510+
beforeExample,
1511+
componentName,
1512+
afterExample,
1513+
componentName
1514+
);
1515+
1516+
didWarnAboutKeySpread[componentName + beforeExample] = true;
15201517
}
15211518
}
15221519

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

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ var disableInputAttributeSyncing =
111111
dynamicFeatureFlags.enableTrustedTypesIntegration,
112112
disableSchedulerTimeoutBasedOnReactExpirationTime =
113113
dynamicFeatureFlags.disableSchedulerTimeoutBasedOnReactExpirationTime,
114-
warnAboutSpreadingKeyToJSX = dynamicFeatureFlags.warnAboutSpreadingKeyToJSX,
115114
replayFailedUnitOfWorkWithInvokeGuardedCallback =
116115
dynamicFeatureFlags.replayFailedUnitOfWorkWithInvokeGuardedCallback,
117116
enableFilterEmptyStringAttributesDOM =
@@ -1487,36 +1486,34 @@ function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
14871486
}
14881487
}
14891488

1490-
if (warnAboutSpreadingKeyToJSX) {
1491-
if (hasOwnProperty.call(props, "key")) {
1492-
var componentName = getComponentNameFromType(type);
1493-
var keys = Object.keys(props).filter(function(k) {
1494-
return k !== "key";
1495-
});
1496-
var beforeExample =
1497-
keys.length > 0
1498-
? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
1499-
: "{key: someKey}";
1500-
1501-
if (!didWarnAboutKeySpread[componentName + beforeExample]) {
1502-
var afterExample =
1503-
keys.length > 0 ? "{" + keys.join(": ..., ") + ": ...}" : "{}";
1489+
if (hasOwnProperty.call(props, "key")) {
1490+
var componentName = getComponentNameFromType(type);
1491+
var keys = Object.keys(props).filter(function(k) {
1492+
return k !== "key";
1493+
});
1494+
var beforeExample =
1495+
keys.length > 0
1496+
? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
1497+
: "{key: someKey}";
15041498

1505-
error(
1506-
'A props object containing a "key" prop is being spread into JSX:\n' +
1507-
" let props = %s;\n" +
1508-
" <%s {...props} />\n" +
1509-
"React keys must be passed directly to JSX without using spread:\n" +
1510-
" let props = %s;\n" +
1511-
" <%s key={someKey} {...props} />",
1512-
beforeExample,
1513-
componentName,
1514-
afterExample,
1515-
componentName
1516-
);
1499+
if (!didWarnAboutKeySpread[componentName + beforeExample]) {
1500+
var afterExample =
1501+
keys.length > 0 ? "{" + keys.join(": ..., ") + ": ...}" : "{}";
15171502

1518-
didWarnAboutKeySpread[componentName + beforeExample] = true;
1519-
}
1503+
error(
1504+
'A props object containing a "key" prop is being spread into JSX:\n' +
1505+
" let props = %s;\n" +
1506+
" <%s {...props} />\n" +
1507+
"React keys must be passed directly to JSX without using spread:\n" +
1508+
" let props = %s;\n" +
1509+
" <%s key={someKey} {...props} />",
1510+
beforeExample,
1511+
componentName,
1512+
afterExample,
1513+
componentName
1514+
);
1515+
1516+
didWarnAboutKeySpread[componentName + beforeExample] = true;
15201517
}
15211518
}
15221519

compiled/facebook-www/REVISION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
48b687fc95a172cec8f305312a27d105e5719581
1+
1f5ce59dd7b6869b1a17ede65aa301002ef31d4b
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
48b687fc95a172cec8f305312a27d105e5719581
1+
1f5ce59dd7b6869b1a17ede65aa301002ef31d4b

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

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ if (
2727
}
2828
"use strict";
2929

30-
var ReactVersion = "18.3.0-www-classic-48b687fc9-20230130";
30+
var ReactVersion = "18.3.0-www-classic-1f5ce59dd-20230130";
3131

3232
// ATTENTION
3333
// When adding new symbols to this file,
@@ -482,7 +482,6 @@ var disableInputAttributeSyncing =
482482
dynamicFeatureFlags.enableTrustedTypesIntegration,
483483
disableSchedulerTimeoutBasedOnReactExpirationTime =
484484
dynamicFeatureFlags.disableSchedulerTimeoutBasedOnReactExpirationTime,
485-
warnAboutSpreadingKeyToJSX = dynamicFeatureFlags.warnAboutSpreadingKeyToJSX,
486485
replayFailedUnitOfWorkWithInvokeGuardedCallback =
487486
dynamicFeatureFlags.replayFailedUnitOfWorkWithInvokeGuardedCallback,
488487
enableFilterEmptyStringAttributesDOM =
@@ -4114,36 +4113,34 @@ function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
41144113
}
41154114
}
41164115

4117-
if (warnAboutSpreadingKeyToJSX) {
4118-
if (hasOwnProperty.call(props, "key")) {
4119-
var componentName = getComponentNameFromType(type);
4120-
var keys = Object.keys(props).filter(function(k) {
4121-
return k !== "key";
4122-
});
4123-
var beforeExample =
4124-
keys.length > 0
4125-
? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
4126-
: "{key: someKey}";
4116+
if (hasOwnProperty.call(props, "key")) {
4117+
var componentName = getComponentNameFromType(type);
4118+
var keys = Object.keys(props).filter(function(k) {
4119+
return k !== "key";
4120+
});
4121+
var beforeExample =
4122+
keys.length > 0
4123+
? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
4124+
: "{key: someKey}";
41274125

4128-
if (!didWarnAboutKeySpread[componentName + beforeExample]) {
4129-
var afterExample =
4130-
keys.length > 0 ? "{" + keys.join(": ..., ") + ": ...}" : "{}";
4126+
if (!didWarnAboutKeySpread[componentName + beforeExample]) {
4127+
var afterExample =
4128+
keys.length > 0 ? "{" + keys.join(": ..., ") + ": ...}" : "{}";
41314129

4132-
error(
4133-
'A props object containing a "key" prop is being spread into JSX:\n' +
4134-
" let props = %s;\n" +
4135-
" <%s {...props} />\n" +
4136-
"React keys must be passed directly to JSX without using spread:\n" +
4137-
" let props = %s;\n" +
4138-
" <%s key={someKey} {...props} />",
4139-
beforeExample,
4140-
componentName,
4141-
afterExample,
4142-
componentName
4143-
);
4130+
error(
4131+
'A props object containing a "key" prop is being spread into JSX:\n' +
4132+
" let props = %s;\n" +
4133+
" <%s {...props} />\n" +
4134+
"React keys must be passed directly to JSX without using spread:\n" +
4135+
" let props = %s;\n" +
4136+
" <%s key={someKey} {...props} />",
4137+
beforeExample,
4138+
componentName,
4139+
afterExample,
4140+
componentName
4141+
);
41444142

4145-
didWarnAboutKeySpread[componentName + beforeExample] = true;
4146-
}
4143+
didWarnAboutKeySpread[componentName + beforeExample] = true;
41474144
}
41484145
}
41494146

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

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ if (
2727
}
2828
"use strict";
2929

30-
var ReactVersion = "18.3.0-www-modern-48b687fc9-20230130";
30+
var ReactVersion = "18.3.0-www-modern-1f5ce59dd-20230130";
3131

3232
// ATTENTION
3333
// When adding new symbols to this file,
@@ -482,7 +482,6 @@ var disableInputAttributeSyncing =
482482
dynamicFeatureFlags.enableTrustedTypesIntegration,
483483
disableSchedulerTimeoutBasedOnReactExpirationTime =
484484
dynamicFeatureFlags.disableSchedulerTimeoutBasedOnReactExpirationTime,
485-
warnAboutSpreadingKeyToJSX = dynamicFeatureFlags.warnAboutSpreadingKeyToJSX,
486485
replayFailedUnitOfWorkWithInvokeGuardedCallback =
487486
dynamicFeatureFlags.replayFailedUnitOfWorkWithInvokeGuardedCallback,
488487
enableFilterEmptyStringAttributesDOM =
@@ -4079,36 +4078,34 @@ function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
40794078
}
40804079
}
40814080

4082-
if (warnAboutSpreadingKeyToJSX) {
4083-
if (hasOwnProperty.call(props, "key")) {
4084-
var componentName = getComponentNameFromType(type);
4085-
var keys = Object.keys(props).filter(function(k) {
4086-
return k !== "key";
4087-
});
4088-
var beforeExample =
4089-
keys.length > 0
4090-
? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
4091-
: "{key: someKey}";
4081+
if (hasOwnProperty.call(props, "key")) {
4082+
var componentName = getComponentNameFromType(type);
4083+
var keys = Object.keys(props).filter(function(k) {
4084+
return k !== "key";
4085+
});
4086+
var beforeExample =
4087+
keys.length > 0
4088+
? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
4089+
: "{key: someKey}";
40924090

4093-
if (!didWarnAboutKeySpread[componentName + beforeExample]) {
4094-
var afterExample =
4095-
keys.length > 0 ? "{" + keys.join(": ..., ") + ": ...}" : "{}";
4091+
if (!didWarnAboutKeySpread[componentName + beforeExample]) {
4092+
var afterExample =
4093+
keys.length > 0 ? "{" + keys.join(": ..., ") + ": ...}" : "{}";
40964094

4097-
error(
4098-
'A props object containing a "key" prop is being spread into JSX:\n' +
4099-
" let props = %s;\n" +
4100-
" <%s {...props} />\n" +
4101-
"React keys must be passed directly to JSX without using spread:\n" +
4102-
" let props = %s;\n" +
4103-
" <%s key={someKey} {...props} />",
4104-
beforeExample,
4105-
componentName,
4106-
afterExample,
4107-
componentName
4108-
);
4095+
error(
4096+
'A props object containing a "key" prop is being spread into JSX:\n' +
4097+
" let props = %s;\n" +
4098+
" <%s {...props} />\n" +
4099+
"React keys must be passed directly to JSX without using spread:\n" +
4100+
" let props = %s;\n" +
4101+
" <%s key={someKey} {...props} />",
4102+
beforeExample,
4103+
componentName,
4104+
afterExample,
4105+
componentName
4106+
);
41094107

4110-
didWarnAboutKeySpread[componentName + beforeExample] = true;
4111-
}
4108+
didWarnAboutKeySpread[componentName + beforeExample] = true;
41124109
}
41134110
}
41144111

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,4 +643,4 @@ exports.useSyncExternalStore = function(
643643
);
644644
};
645645
exports.useTransition = useTransition;
646-
exports.version = "18.3.0-www-classic-48b687fc9-20230130";
646+
exports.version = "18.3.0-www-classic-1f5ce59dd-20230130";

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -635,4 +635,4 @@ exports.useSyncExternalStore = function(
635635
);
636636
};
637637
exports.useTransition = useTransition;
638-
exports.version = "18.3.0-www-modern-48b687fc9-20230130";
638+
exports.version = "18.3.0-www-modern-1f5ce59dd-20230130";

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,7 @@ exports.useSyncExternalStore = function(
654654
);
655655
};
656656
exports.useTransition = useTransition;
657-
exports.version = "18.3.0-www-classic-48b687fc9-20230130";
657+
exports.version = "18.3.0-www-classic-1f5ce59dd-20230130";
658658

659659
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
660660
if (

compiled/facebook-www/React-profiling.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,7 @@ exports.useSyncExternalStore = function(
646646
);
647647
};
648648
exports.useTransition = useTransition;
649-
exports.version = "18.3.0-www-modern-48b687fc9-20230130";
649+
exports.version = "18.3.0-www-modern-1f5ce59dd-20230130";
650650

651651
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
652652
if (

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ function _assertThisInitialized(self) {
6969
return self;
7070
}
7171

72-
var ReactVersion = "18.3.0-www-classic-48b687fc9-20230130";
72+
var ReactVersion = "18.3.0-www-classic-1f5ce59dd-20230130";
7373

7474
var LegacyRoot = 0;
7575
var ConcurrentRoot = 1;
@@ -171,7 +171,6 @@ var disableInputAttributeSyncing =
171171
dynamicFeatureFlags.enableTrustedTypesIntegration,
172172
disableSchedulerTimeoutBasedOnReactExpirationTime =
173173
dynamicFeatureFlags.disableSchedulerTimeoutBasedOnReactExpirationTime,
174-
warnAboutSpreadingKeyToJSX = dynamicFeatureFlags.warnAboutSpreadingKeyToJSX,
175174
replayFailedUnitOfWorkWithInvokeGuardedCallback =
176175
dynamicFeatureFlags.replayFailedUnitOfWorkWithInvokeGuardedCallback,
177176
enableFilterEmptyStringAttributesDOM =

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ function _assertThisInitialized(self) {
6969
return self;
7070
}
7171

72-
var ReactVersion = "18.3.0-www-modern-48b687fc9-20230130";
72+
var ReactVersion = "18.3.0-www-modern-1f5ce59dd-20230130";
7373

7474
var LegacyRoot = 0;
7575
var ConcurrentRoot = 1;
@@ -171,7 +171,6 @@ var disableInputAttributeSyncing =
171171
dynamicFeatureFlags.enableTrustedTypesIntegration,
172172
disableSchedulerTimeoutBasedOnReactExpirationTime =
173173
dynamicFeatureFlags.disableSchedulerTimeoutBasedOnReactExpirationTime,
174-
warnAboutSpreadingKeyToJSX = dynamicFeatureFlags.warnAboutSpreadingKeyToJSX,
175174
replayFailedUnitOfWorkWithInvokeGuardedCallback =
176175
dynamicFeatureFlags.replayFailedUnitOfWorkWithInvokeGuardedCallback,
177176
enableFilterEmptyStringAttributesDOM =

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9804,7 +9804,7 @@ var slice = Array.prototype.slice,
98049804
return null;
98059805
},
98069806
bundleType: 0,
9807-
version: "18.3.0-www-classic-48b687fc9-20230130",
9807+
version: "18.3.0-www-classic-1f5ce59dd-20230130",
98089808
rendererPackageName: "react-art"
98099809
};
98109810
var internals$jscomp$inline_1318 = {
@@ -9835,7 +9835,7 @@ var internals$jscomp$inline_1318 = {
98359835
scheduleRoot: null,
98369836
setRefreshHandler: null,
98379837
getCurrentFiber: null,
9838-
reconcilerVersion: "18.3.0-next-48b687fc9-20230130"
9838+
reconcilerVersion: "18.3.0-next-1f5ce59dd-20230130"
98399839
};
98409840
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
98419841
var hook$jscomp$inline_1319 = __REACT_DEVTOOLS_GLOBAL_HOOK__;

0 commit comments

Comments
 (0)