11import * 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' ;
310import { RadioGroup , Radio , Label } from '@fluentui/react-components' ;
411
512type 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+
3769export 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} ;
0 commit comments