MCPcopy
hub / github.com/facebook/react / getDisplayNameForReactElement

Function getDisplayNameForReactElement

packages/react-devtools-shared/src/utils.js:867–912  ·  view source on GitHub ↗
(
  element: React$Element<any>,
)

Source from the content-addressed store, hash-verified

865}
866
867export function getDisplayNameForReactElement(
868 element: React$Element<any>,
869): string | null {
870 const elementType = typeOfWithLegacyElementSymbol(element);
871 switch (elementType) {
872 case REACT_CONSUMER_TYPE:
873 return 'ContextConsumer';
874 case LEGACY_REACT_PROVIDER_TYPE:
875 return 'ContextProvider';
876 case REACT_CONTEXT_TYPE:
877 return 'Context';
878 case REACT_FORWARD_REF_TYPE:
879 return 'ForwardRef';
880 case REACT_FRAGMENT_TYPE:
881 return 'Fragment';
882 case REACT_LAZY_TYPE:
883 return 'Lazy';
884 case REACT_MEMO_TYPE:
885 return 'Memo';
886 case REACT_PORTAL_TYPE:
887 return 'Portal';
888 case REACT_PROFILER_TYPE:
889 return 'Profiler';
890 case REACT_STRICT_MODE_TYPE:
891 return 'StrictMode';
892 case REACT_SUSPENSE_TYPE:
893 return 'Suspense';
894 case REACT_SUSPENSE_LIST_TYPE:
895 return 'SuspenseList';
896 case REACT_VIEW_TRANSITION_TYPE:
897 return 'ViewTransition';
898 case REACT_TRACING_MARKER_TYPE:
899 return 'TracingMarker';
900 default:
901 const {type} = element;
902 if (typeof type === 'string') {
903 return type;
904 } else if (typeof type === 'function') {
905 return getDisplayName(type, 'Anonymous');
906 } else if (type != null) {
907 return 'NotImplementedInDevtools';
908 } else {
909 return 'Element';
910 }
911 }
912}
913
914const MAX_PREVIEW_STRING_LENGTH = 50;
915

Callers 3

dehydrateFunction · 0.90
utils-test.jsFile · 0.90
formatDataForPreviewFunction · 0.85

Calls 2

getDisplayNameFunction · 0.85

Tested by

no test coverage detected