@@ -25,6 +25,18 @@ import {
2525
2626const log = Log . module ( '@deephaven/plugin.PluginUtils' ) ;
2727
28+ /**
29+ * Get a display-friendly name for a React component.
30+ * Prefers displayName, falls back to name, then the provided fallback.
31+ */
32+ function getComponentName (
33+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34+ component : React . ComponentType < any > ,
35+ fallback = 'Component'
36+ ) : string {
37+ return component . displayName ?? component . name ?? fallback ;
38+ }
39+
2840export function pluginSupportsType (
2941 plugin : PluginModule | undefined ,
3042 type : string
@@ -118,14 +130,14 @@ export function createChainedComponent<T>(
118130 if ( middleware . length === 0 ) {
119131 log . debug (
120132 'No middleware to chain for component' ,
121- baseComponent . displayName ?? baseComponent . name
133+ getComponentName ( baseComponent )
122134 ) ;
123135 return baseComponent ;
124136 }
125137
126138 log . debug (
127139 'Chaining component middleware' ,
128- baseComponent . displayName ?? baseComponent . name ,
140+ getComponentName ( baseComponent ) ,
129141 middleware . map ( m => m . name )
130142 ) ;
131143
@@ -157,11 +169,9 @@ export function createChainedComponent<T>(
157169 />
158170 ) ;
159171 }
160- ChainedComponent . displayName = `${ middlewarePlugin . name } (${
161- ( WrappedComponent as React . ComponentType ) . displayName ??
162- ( WrappedComponent as React . ComponentType ) . name ??
163- 'Component'
164- } )`;
172+ ChainedComponent . displayName = `${
173+ middlewarePlugin . name
174+ } (${ getComponentName ( WrappedComponent ) } )`;
165175 return ChainedComponent ;
166176 } ,
167177 baseComponent
@@ -187,14 +197,14 @@ export function createChainedPanelComponent<T>(
187197 if ( panelMiddleware . length === 0 ) {
188198 log . debug (
189199 'No panel middleware to chain for panel component' ,
190- basePanelComponent . displayName ?? basePanelComponent . name
200+ getComponentName ( basePanelComponent )
191201 ) ;
192202 return basePanelComponent ;
193203 }
194204
195205 log . debug (
196206 'Chaining panel middleware' ,
197- basePanelComponent . displayName ?? basePanelComponent . name ,
207+ getComponentName ( basePanelComponent ) ,
198208 panelMiddleware . map ( m => m . name )
199209 ) ;
200210
@@ -222,11 +232,9 @@ export function createChainedPanelComponent<T>(
222232 />
223233 ) ;
224234 }
225- ChainedPanel . displayName = `${ middlewarePlugin . name } Panel(${
226- ( WrappedPanel as React . ComponentType ) . displayName ??
227- ( WrappedPanel as React . ComponentType ) . name ??
228- 'Panel'
229- } )`;
235+ ChainedPanel . displayName = `${
236+ middlewarePlugin . name
237+ } Panel(${ getComponentName ( WrappedPanel , 'Panel' ) } )`;
230238 return ChainedPanel ;
231239 } ,
232240 basePanelComponent
0 commit comments