22
import NativeStyleEditor from './NativeStyleEditor';
23
import {enableStyleXFeatures} from 'react-devtools-feature-flags';
24
import InspectedElementSourcePanel from './InspectedElementSourcePanel';
25
+import StackTraceView from './StackTraceView';
26
import OwnerView from './OwnerView';
27
28
import styles from './InspectedElementView.css';
53
symbolicatedSourcePromise,
54
}: Props): React.Node {
55
const {
56
+ stack,
57
owners,
58
rendererPackageName,
59
rendererVersion,
70
? `${rendererPackageName}@${rendererVersion}`
71
: null;
72
const showOwnersList = owners !== null && owners.length > 0;
73
+ const showStack = stack != null && stack.length > 0;
74
const showRenderedBy =
72
- showOwnersList || rendererLabel !== null || rootType !== null;
75
+ showStack || showOwnersList || rendererLabel !== null || rootType !== null;
76
77
return (
78
<Fragment>
171
data-testname="InspectedElementView-Owners">
172
<div className={styles.OwnersHeader}>rendered by</div>
173
174
+ {showStack ? <StackTraceView stack={stack} /> : null}
175
{showOwnersList &&
176
owners?.map(owner => (
173
- <OwnerView
174
- key={owner.id}
175
- displayName={owner.displayName || 'Anonymous'}
176
- hocDisplayNames={owner.hocDisplayNames}
177
- environmentName={
178
- inspectedElement.env === owner.env ? null : owner.env
179
- }
180
- compiledWithForget={owner.compiledWithForget}
181
- id={owner.id}
182
- isInStore={store.containsElement(owner.id)}
183
- type={owner.type}
184
- />
177
+ <>
178
+ <OwnerView
179
+ key={owner.id}
180
+ displayName={owner.displayName || 'Anonymous'}
181
+ hocDisplayNames={owner.hocDisplayNames}
182
+ environmentName={
183
+ inspectedElement.env === owner.env ? null : owner.env
184
+ }
185
+ compiledWithForget={owner.compiledWithForget}
186
+ id={owner.id}
187
+ isInStore={store.containsElement(owner.id)}
188
+ type={owner.type}
189
+ />
190
+ {owner.stack != null && owner.stack.length > 0 ? (
191
+ <StackTraceView stack={owner.stack} />
192
+ ) : null}
193
+ </>
194
))}
195
196
{rootType !== null && (