diff --git a/common/changes/office-ui-fabric-react/office-ui-fabric-react-4786_2018-05-05-07-40.json b/common/changes/office-ui-fabric-react/office-ui-fabric-react-4786_2018-05-05-07-40.json new file mode 100644 index 00000000000000..e9c6356414b005 --- /dev/null +++ b/common/changes/office-ui-fabric-react/office-ui-fabric-react-4786_2018-05-05-07-40.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "office-ui-fabric-react", + "comment": "Fix breadcrumb rendering issue when overflow index is at last", + "type": "patch" + } + ], + "packageName": "office-ui-fabric-react", + "email": "kabalas@microsoft.com" +} \ No newline at end of file diff --git a/packages/office-ui-fabric-react/src/components/Breadcrumb/Breadcrumb.base.tsx b/packages/office-ui-fabric-react/src/components/Breadcrumb/Breadcrumb.base.tsx index a70ae271a4ff67..ad53606dcd3ab6 100644 --- a/packages/office-ui-fabric-react/src/components/Breadcrumb/Breadcrumb.base.tsx +++ b/packages/office-ui-fabric-react/src/components/Breadcrumb/Breadcrumb.base.tsx @@ -127,12 +127,13 @@ export class BreadcrumbBase extends BaseComponent { // Find index of last rendered item so the divider icon // knows not to render on that item const lastItemIndex = renderedItems.length - 1; + const hasOverflowItems = renderedOverflowItems && renderedOverflowItems.length !== 0; const itemElements: JSX.Element[] = renderedItems.map( (item, index) => (
  • { onRenderItem(item, this._onRenderItem) } - { index !== lastItemIndex && ( + { (index !== lastItemIndex || (hasOverflowItems && index === (overflowIndex! - 1))) && ( {
  • )); - if (renderedOverflowItems && renderedOverflowItems.length !== 0) { + if (hasOverflowItems) { itemElements.splice(overflowIndex!, 0, (
  • { directionalHint: DirectionalHint.bottomLeftEdge } } /> - + { overflowIndex !== lastItemIndex + 1 && ( + + ) }
  • )); } diff --git a/packages/office-ui-fabric-react/src/components/Breadcrumb/Breadcrumb.test.tsx b/packages/office-ui-fabric-react/src/components/Breadcrumb/Breadcrumb.test.tsx index 87499314109283..540728c3ef40b1 100644 --- a/packages/office-ui-fabric-react/src/components/Breadcrumb/Breadcrumb.test.tsx +++ b/packages/office-ui-fabric-react/src/components/Breadcrumb/Breadcrumb.test.tsx @@ -74,6 +74,34 @@ describe('Breadcrumb', () => { const tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); + + it('renders breadcumb correctly 5', () => { + // With maxDisplayedItems and overflowIndex + const component = renderer.create( + + ); + + const tree = component.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + it('renders breadcumb correctly 6', () => { + // With maxDisplayedItems and overflowIndex as 0 + const component = renderer.create( + + ); + + const tree = component.toJSON(); + expect(tree).toMatchSnapshot(); + }); }); it('can call the callback when an item is clicked', () => { diff --git a/packages/office-ui-fabric-react/src/components/Breadcrumb/__snapshots__/Breadcrumb.test.tsx.snap b/packages/office-ui-fabric-react/src/components/Breadcrumb/__snapshots__/Breadcrumb.test.tsx.snap index 4c19fa80cd7922..e39e23fd373445 100644 --- a/packages/office-ui-fabric-react/src/components/Breadcrumb/__snapshots__/Breadcrumb.test.tsx.snap +++ b/packages/office-ui-fabric-react/src/components/Breadcrumb/__snapshots__/Breadcrumb.test.tsx.snap @@ -1359,6 +1359,500 @@ exports[`Breadcrumb basic rendering renders breadcumb correctly 4 1`] = ` `; +exports[`Breadcrumb basic rendering renders breadcumb correctly 5 1`] = ` +
    +
    +
    +
    +
      +
    1. + +
      + TestText1 +
      +
      + +  + +
    2. +
    3. + +
    4. +
    +
    +
    +
    +
    +`; + +exports[`Breadcrumb basic rendering renders breadcumb correctly 6 1`] = ` +
    +
    +
    +
    +
      +
    1. + +
    2. +
    +
    +
    +
    +
    +`; + exports[`Breadcrumb renders empty breadcrumb 1`] = `
    { ariaLabel={ 'Website breadcrumb' } /> - +