Skip to content

Commit dec687f

Browse files
committed
[DevTools] Separate breadcrumbs with »
1 parent b52380c commit dec687f

File tree

4 files changed

+39
-21
lines changed

4 files changed

+39
-21
lines changed

packages/react-devtools-shared/src/devtools/views/Components/OwnersStack.css

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@
3434

3535
.OwnerStackFlatListContainer {
3636
display: inline-flex;
37-
}
37+
}
38+
39+
.OwnerStackFlatListSeparator {
40+
user-select: none;
41+
}
3842

3943
.VRule {
4044
flex: 0 0 auto;

packages/react-devtools-shared/src/devtools/views/Components/OwnersStack.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,16 @@ function OwnerStackFlatList({
110110
return (
111111
<div className={styles.OwnerStackFlatListContainer} ref={containerRef}>
112112
{owners.map((owner, index) => (
113-
<ElementView
114-
key={index}
115-
owner={owner}
116-
isSelected={index === selectedIndex}
117-
selectOwner={selectOwner}
118-
/>
113+
<Fragment key={index}>
114+
<ElementView
115+
owner={owner}
116+
isSelected={index === selectedIndex}
117+
selectOwner={selectOwner}
118+
/>
119+
{index < owners.length - 1 && (
120+
<span className={styles.OwnerStackFlatListSeparator}>»</span>
121+
)}
122+
</Fragment>
119123
))}
120124
</div>
121125
);

packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseBreadcrumbs.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
display: inline;
1717
}
1818

19+
.SuspenseBreadcrumbsListItemSeparator {
20+
user-select: none;
21+
}
22+
1923
.SuspenseBreadcrumbsListItem[aria-current="true"] .SuspenseBreadcrumbsButton {
2024
color: var(--color-button-active);
2125
}

packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseBreadcrumbs.js

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import type {SuspenseNode} from 'react-devtools-shared/src/frontend/types';
1111
import typeof {SyntheticMouseEvent} from 'react-dom-bindings/src/events/SyntheticEvent';
1212

1313
import * as React from 'react';
14-
import {useContext, useLayoutEffect, useRef, useState} from 'react';
14+
import {Fragment, useContext, useLayoutEffect, useRef, useState} from 'react';
1515
import Button from '../Button';
1616
import ButtonIcon from '../ButtonIcon';
1717
import Tooltip from '../Components/reach-ui/tooltip';
@@ -99,19 +99,25 @@ function SuspenseBreadcrumbsFlatList({
9999
const node = store.getSuspenseByID(id);
100100

101101
return (
102-
<li
103-
key={id}
104-
className={styles.SuspenseBreadcrumbsListItem}
105-
aria-current={selectedSuspenseID === id}
106-
onPointerEnter={onItemPointerEnter.bind(null, id, false)}
107-
onPointerLeave={onItemPointerLeave}>
108-
<button
109-
className={styles.SuspenseBreadcrumbsButton}
110-
onClick={onItemClick.bind(null, id)}
111-
type="button">
112-
{node === null ? 'Unknown' : node.name || 'Unknown'}
113-
</button>
114-
</li>
102+
<Fragment key={id}>
103+
<li
104+
className={styles.SuspenseBreadcrumbsListItem}
105+
aria-current={selectedSuspenseID === id}
106+
onPointerEnter={onItemPointerEnter.bind(null, id, false)}
107+
onPointerLeave={onItemPointerLeave}>
108+
<button
109+
className={styles.SuspenseBreadcrumbsButton}
110+
onClick={onItemClick.bind(null, id)}
111+
type="button">
112+
{node === null ? 'Unknown' : node.name || 'Unknown'}
113+
</button>
114+
</li>
115+
{index < lineage.length - 1 && (
116+
<span className={styles.SuspenseBreadcrumbsListItemSeparator}>
117+
»
118+
</span>
119+
)}
120+
</Fragment>
115121
);
116122
})
117123
)}

0 commit comments

Comments
 (0)