paradiego
This commit is contained in:
38
node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js
generated
vendored
Normal file
38
node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
import { ForwardRef, Memo } from 'react-is';
|
||||
function getFunctionComponentName(Component, fallback = '') {
|
||||
return Component.displayName || Component.name || fallback;
|
||||
}
|
||||
function getWrappedName(outerType, innerType, wrapperName) {
|
||||
const functionName = getFunctionComponentName(innerType);
|
||||
return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);
|
||||
}
|
||||
|
||||
/**
|
||||
* cherry-pick from
|
||||
* https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js
|
||||
* originally forked from recompose/getDisplayName
|
||||
*/
|
||||
export default function getDisplayName(Component) {
|
||||
if (Component == null) {
|
||||
return undefined;
|
||||
}
|
||||
if (typeof Component === 'string') {
|
||||
return Component;
|
||||
}
|
||||
if (typeof Component === 'function') {
|
||||
return getFunctionComponentName(Component, 'Component');
|
||||
}
|
||||
|
||||
// TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`
|
||||
if (typeof Component === 'object') {
|
||||
switch (Component.$$typeof) {
|
||||
case ForwardRef:
|
||||
return getWrappedName(Component, Component.render, 'ForwardRef');
|
||||
case Memo:
|
||||
return getWrappedName(Component, Component.type, 'memo');
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
Reference in New Issue
Block a user