( element: React$Element<any>, )
| 865 | } |
| 866 | |
| 867 | export 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 | |
| 914 | const MAX_PREVIEW_STRING_LENGTH = 50; |
| 915 |
no test coverage detected