Skip to content

Commit d445789

Browse files
Made BreadcrumbButton consistent with Item and Link (#28672)
* Made BreadcrumbButton consistent with Item and Link
1 parent 595d43b commit d445789

File tree

4 files changed

+61
-2
lines changed

4 files changed

+61
-2
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "patch",
3+
"comment": "fix: made BreadcrumbButton consistent with other items",
4+
"packageName": "@fluentui/react-breadcrumb-preview",
5+
"email": "[email protected]",
6+
"dependentChangeType": "patch"
7+
}

packages/react-components/react-breadcrumb-preview/src/components/BreadcrumbButton/useBreadcrumbButtonStyles.styles.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ const defaultButtonStyles = {
2828
const useStyles = makeStyles({
2929
root: {
3030
...shorthands.padding(tokens.spacingHorizontalNone),
31+
minWidth: 'unset',
32+
textWrap: 'nowrap',
3133
},
3234
small: {
3335
height: '24px',

packages/react-components/react-breadcrumb-preview/stories/Breadcrumb/BreadcrumbSize.stories.tsx

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
import * as React from 'react';
2-
import { Breadcrumb, BreadcrumbItem, BreadcrumbDivider, BreadcrumbProps } from '@fluentui/react-breadcrumb-preview';
2+
import {
3+
Breadcrumb,
4+
BreadcrumbItem,
5+
BreadcrumbDivider,
6+
BreadcrumbProps,
7+
BreadcrumbButton,
8+
BreadcrumbLink,
9+
} from '@fluentui/react-breadcrumb-preview';
310
import { RadioGroup, Radio, Label } from '@fluentui/react-components';
411

512
type Item = {
@@ -34,6 +41,31 @@ function renderItem(item: Item, size: BreadcrumbProps['size']) {
3441
</React.Fragment>
3542
);
3643
}
44+
45+
function renderButton(item: Item) {
46+
const isLastItem = items.length - 1 === item.key;
47+
return (
48+
<React.Fragment key={`button-item-${item.key}`}>
49+
<BreadcrumbItem current={isLastItem}>
50+
<BreadcrumbButton>{item.value}</BreadcrumbButton>
51+
</BreadcrumbItem>
52+
{!isLastItem && <BreadcrumbDivider />}
53+
</React.Fragment>
54+
);
55+
}
56+
57+
function renderLink(item: Item) {
58+
const isLastItem = items.length - 1 === item.key;
59+
return (
60+
<React.Fragment key={`link-item-${item.key}`}>
61+
<BreadcrumbItem current={isLastItem}>
62+
<BreadcrumbLink>{item.value}</BreadcrumbLink>
63+
</BreadcrumbItem>
64+
{!isLastItem && <BreadcrumbDivider />}
65+
</React.Fragment>
66+
);
67+
}
68+
3769
export const BreadcrumbSize = () => {
3870
const [dividerType, setDividerType] = React.useState('chevron' as BreadcrumbProps['dividerType']);
3971
return (
@@ -52,12 +84,30 @@ export const BreadcrumbSize = () => {
5284
<Breadcrumb aria-label="Small breadcrumb example with slashes" size="small" dividerType={dividerType}>
5385
{items.map(item => renderItem(item, 'small'))}
5486
</Breadcrumb>
87+
<Breadcrumb aria-label="Small breadcrumb example with buttons" size="small">
88+
{items.map(item => renderButton(item))}
89+
</Breadcrumb>
90+
<Breadcrumb aria-label="Small breadcrumb example with links" size="small">
91+
{items.map(item => renderLink(item))}
92+
</Breadcrumb>
5593
<h2>Medium</h2>
5694
<Breadcrumb aria-label="Default breadcrumb">{items.map(item => renderItem(item, 'medium'))}</Breadcrumb>
95+
<Breadcrumb aria-label="Medium breadcrumb example with buttons" size="medium">
96+
{items.map(item => renderButton(item))}
97+
</Breadcrumb>
98+
<Breadcrumb aria-label="Medium breadcrumb example with links" size="medium">
99+
{items.map(item => renderLink(item))}
100+
</Breadcrumb>
57101
<h2>Large</h2>
58102
<Breadcrumb aria-label="Large breadcrumb" size="large">
59103
{items.map(item => renderItem(item, 'large'))}
60104
</Breadcrumb>
105+
<Breadcrumb aria-label="Large breadcrumb example with buttons" size="large">
106+
{items.map(item => renderButton(item))}
107+
</Breadcrumb>
108+
<Breadcrumb aria-label="Large breadcrumb example with links" size="large">
109+
{items.map(item => renderLink(item))}
110+
</Breadcrumb>
61111
</>
62112
);
63113
};

packages/react-components/react-breadcrumb-preview/stories/Breadcrumb/BreadcrumbWithOverflow.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ const BreadcrumbControlledOverflowExample = () => {
235235

236236
return (
237237
<div className={mergeClasses(styles.example, styles.horizontal)}>
238-
<Overflow>
238+
<Overflow padding={40}>
239239
<Breadcrumb>
240240
{startDisplayedItems.map((item: ButtonItem) => renderButton(item, false))}
241241
<ControlledOverflowMenu

0 commit comments

Comments
 (0)