14
14
var dynamicFeatureFlags = require ( "ReactFeatureFlags" ) ,
15
15
disableDefaultPropsExceptForClasses =
16
16
dynamicFeatureFlags . disableDefaultPropsExceptForClasses ,
17
+ enableLogStringRefsProd = dynamicFeatureFlags . enableLogStringRefsProd ,
17
18
enableRenderableContext = dynamicFeatureFlags . enableRenderableContext ,
18
19
enableTransitionTracing = dynamicFeatureFlags . enableTransitionTracing ,
19
20
renameElementSymbol = dynamicFeatureFlags . renameElementSymbol ,
21
+ disableLegacyMode = dynamicFeatureFlags . disableLegacyMode ,
20
22
REACT_LEGACY_ELEMENT_TYPE = Symbol . for ( "react.element" ) ,
21
23
REACT_ELEMENT_TYPE = renameElementSymbol
22
24
? Symbol . for ( "react.transitional.element" )
@@ -90,12 +92,140 @@ pureComponentPrototype.constructor = PureComponent;
90
92
assign ( pureComponentPrototype , Component . prototype ) ;
91
93
pureComponentPrototype . isPureReactComponent = ! 0 ;
92
94
var isArrayImpl = Array . isArray ,
93
- ReactSharedInternals = { H : null , A : null , T : null , S : null } ,
95
+ REACT_CLIENT_REFERENCE = Symbol . for ( "react.client.reference" ) ;
96
+ function getComponentNameFromType ( type ) {
97
+ if ( null == type ) return null ;
98
+ if ( "function" === typeof type )
99
+ return type . $$typeof === REACT_CLIENT_REFERENCE
100
+ ? null
101
+ : type . displayName || type . name || null ;
102
+ if ( "string" === typeof type ) return type ;
103
+ switch ( type ) {
104
+ case REACT_FRAGMENT_TYPE :
105
+ return "Fragment" ;
106
+ case REACT_PORTAL_TYPE :
107
+ return "Portal" ;
108
+ case REACT_PROFILER_TYPE :
109
+ return "Profiler" ;
110
+ case REACT_STRICT_MODE_TYPE :
111
+ return "StrictMode" ;
112
+ case REACT_SUSPENSE_TYPE :
113
+ return "Suspense" ;
114
+ case REACT_SUSPENSE_LIST_TYPE :
115
+ return "SuspenseList" ;
116
+ case REACT_TRACING_MARKER_TYPE :
117
+ if ( enableTransitionTracing ) return "TracingMarker" ;
118
+ }
119
+ if ( "object" === typeof type )
120
+ switch ( type . $$typeof ) {
121
+ case REACT_PROVIDER_TYPE :
122
+ if ( enableRenderableContext ) break ;
123
+ else return ( type . _context . displayName || "Context" ) + ".Provider" ;
124
+ case REACT_CONTEXT_TYPE :
125
+ return enableRenderableContext
126
+ ? ( type . displayName || "Context" ) + ".Provider"
127
+ : ( type . displayName || "Context" ) + ".Consumer" ;
128
+ case REACT_CONSUMER_TYPE :
129
+ if ( enableRenderableContext )
130
+ return ( type . _context . displayName || "Context" ) + ".Consumer" ;
131
+ break ;
132
+ case REACT_FORWARD_REF_TYPE :
133
+ var innerType = type . render ;
134
+ type = type . displayName ;
135
+ type ||
136
+ ( ( type = innerType . displayName || innerType . name || "" ) ,
137
+ ( type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef" ) ) ;
138
+ return type ;
139
+ case REACT_MEMO_TYPE :
140
+ return (
141
+ ( innerType = type . displayName || null ) ,
142
+ null !== innerType
143
+ ? innerType
144
+ : getComponentNameFromType ( type . type ) || "Memo"
145
+ ) ;
146
+ case REACT_LAZY_TYPE :
147
+ innerType = type . _payload ;
148
+ type = type . _init ;
149
+ try {
150
+ return getComponentNameFromType ( type ( innerType ) ) ;
151
+ } catch ( x ) { }
152
+ }
153
+ return null ;
154
+ }
155
+ var ReactSharedInternals = { H : null , A : null , T : null , S : null } ,
94
156
hasOwnProperty = Object . prototype . hasOwnProperty ;
157
+ function getComponentNameFromFiber ( fiber ) {
158
+ var type = fiber . type ;
159
+ switch ( fiber . tag ) {
160
+ case 24 :
161
+ return "Cache" ;
162
+ case 9 :
163
+ return enableRenderableContext
164
+ ? ( type . _context . displayName || "Context" ) + ".Consumer"
165
+ : ( type . displayName || "Context" ) + ".Consumer" ;
166
+ case 10 :
167
+ return enableRenderableContext
168
+ ? ( type . displayName || "Context" ) + ".Provider"
169
+ : ( type . _context . displayName || "Context" ) + ".Provider" ;
170
+ case 18 :
171
+ return "DehydratedFragment" ;
172
+ case 11 :
173
+ return (
174
+ ( fiber = type . render ) ,
175
+ ( fiber = fiber . displayName || fiber . name || "" ) ,
176
+ type . displayName ||
177
+ ( "" !== fiber ? "ForwardRef(" + fiber + ")" : "ForwardRef" )
178
+ ) ;
179
+ case 7 :
180
+ return "Fragment" ;
181
+ case 26 :
182
+ case 27 :
183
+ case 5 :
184
+ return type ;
185
+ case 4 :
186
+ return "Portal" ;
187
+ case 3 :
188
+ return "Root" ;
189
+ case 6 :
190
+ return "Text" ;
191
+ case 16 :
192
+ return getComponentNameFromType ( type ) ;
193
+ case 8 :
194
+ return type === REACT_STRICT_MODE_TYPE ? "StrictMode" : "Mode" ;
195
+ case 22 :
196
+ return "Offscreen" ;
197
+ case 12 :
198
+ return "Profiler" ;
199
+ case 21 :
200
+ return "Scope" ;
201
+ case 13 :
202
+ return "Suspense" ;
203
+ case 19 :
204
+ return "SuspenseList" ;
205
+ case 25 :
206
+ return "TracingMarker" ;
207
+ case 17 :
208
+ case 28 :
209
+ if ( disableLegacyMode ) break ;
210
+ case 1 :
211
+ case 0 :
212
+ case 14 :
213
+ case 15 :
214
+ if ( "function" === typeof type )
215
+ return type . displayName || type . name || null ;
216
+ if ( "string" === typeof type ) return type ;
217
+ break ;
218
+ case 23 :
219
+ return "LegacyHidden" ;
220
+ }
221
+ return null ;
222
+ }
95
223
function getOwner ( ) {
96
224
var dispatcher = ReactSharedInternals . A ;
97
225
return null === dispatcher ? null : dispatcher . getOwner ( ) ;
98
226
}
227
+ var didWarnAboutStringRefs ;
228
+ enableLogStringRefsProd && ( didWarnAboutStringRefs = { } ) ;
99
229
function ReactElement ( type , key , _ref , self , source , owner , props ) {
100
230
_ref = props . ref ;
101
231
return {
@@ -121,9 +251,9 @@ function jsxProd(type, config, maybeKey) {
121
251
} else maybeKey = config ;
122
252
if ( ! disableDefaultPropsExceptForClasses && type && type . defaultProps ) {
123
253
config = type . defaultProps ;
124
- for ( var propName$0 in config )
125
- void 0 === maybeKey [ propName$0 ] &&
126
- ( maybeKey [ propName$0 ] = config [ propName$0 ] ) ;
254
+ for ( var propName$1 in config )
255
+ void 0 === maybeKey [ propName$1 ] &&
256
+ ( maybeKey [ propName$1 ] = config [ propName$1 ] ) ;
127
257
}
128
258
return ReactElement ( type , key , null , void 0 , void 0 , getOwner ( ) , maybeKey ) ;
129
259
}
@@ -167,15 +297,22 @@ function stringRefAsCallbackRef(stringRef, type, owner, value) {
167
297
throw Error (
168
298
"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://react.dev/link/strict-mode-string-ref"
169
299
) ;
170
- type = owner . stateNode ;
171
- if ( ! type )
300
+ enableLogStringRefsProd &&
301
+ ( "function" !== typeof type ||
302
+ ( type . prototype && type . prototype . isReactComponent ) ) &&
303
+ ( ( type = getComponentNameFromFiber ( owner ) || "Component" ) ,
304
+ didWarnAboutStringRefs [ type ] ||
305
+ ( enableLogStringRefsProd && enableLogStringRefsProd ( type , stringRef ) ,
306
+ ( didWarnAboutStringRefs [ type ] = ! 0 ) ) ) ;
307
+ owner = owner . stateNode ;
308
+ if ( ! owner )
172
309
throw Error (
173
310
"Missing owner for string ref " +
174
311
stringRef +
175
312
". This error is likely caused by a bug in React. Please file an issue."
176
313
) ;
177
- type = type . refs ;
178
- null === value ? delete type [ stringRef ] : ( type [ stringRef ] = value ) ;
314
+ owner = owner . refs ;
315
+ null === value ? delete owner [ stringRef ] : ( owner [ stringRef ] = value ) ;
179
316
}
180
317
function escape ( key ) {
181
318
var escaperLookup = { "=" : "=0" , ":" : "=2" } ;
@@ -667,4 +804,4 @@ exports.useSyncExternalStore = function (
667
804
exports . useTransition = function ( ) {
668
805
return ReactSharedInternals . H . useTransition ( ) ;
669
806
} ;
670
- exports . version = "19.0.0-www-classic-b78a7f2f-20241007 " ;
807
+ exports . version = "19.0.0-www-classic-5636fad8-20241010 " ;
0 commit comments