Skip to content

Commit e610a4b

Browse files
committed
Address review comment
1 parent 403d166 commit e610a4b

1 file changed

Lines changed: 22 additions & 14 deletions

File tree

packages/plugin/src/PluginUtils.tsx

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,18 @@ import {
2525

2626
const 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+
2840
export 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

Comments
 (0)