Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"changes": [
{
"packageName": "@uifabric/experiments",
"comment": "Experiments/Nav component: display \"show more\" link only if there is atleast one hidden link",
"type": "minor"
}
],
"packageName": "@uifabric/experiments",
"email": "sikrishn@microsoft.com"
}
11 changes: 11 additions & 0 deletions packages/experiments/src/components/Nav/Nav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ class NavComponent extends NavBase {
return null;
}

// reset the flag
// on render link, find if there is atleast one hidden link to display "Show more" link
this._hasAtleastOneHiddenLink = false;

return (
<nav role='navigation'>
{
Expand Down Expand Up @@ -191,9 +195,16 @@ class NavComponent extends NavBase {
{
links.map((link: INavLink, linkIndex: number) => {
if (enableCustomization && link.isHidden && !showMore) {
// atleast one link is hidden
this._hasAtleastOneHiddenLink = true;

// "Show more" overrides isHidden property
return null;
}
else if (link.isShowMoreLink && !this._hasAtleastOneHiddenLink && !showMore) {
// there is no hidden link, hide "Show more" link
return null;
}
else {
return this._renderLink(link, linkIndex, nestingLevel);
}
Expand Down
2 changes: 2 additions & 0 deletions packages/experiments/src/components/Nav/NavBase.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import * as React from 'react';
/* tslint:enable */

export class NavBase extends React.Component<INavProps, INavState> implements INav {
protected _hasAtleastOneHiddenLink = false;

constructor(props: INavProps) {
super(props);
}
Expand Down
11 changes: 11 additions & 0 deletions packages/experiments/src/components/Nav/SlimNav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ class SlimNavComponent extends NavBase {
return null;
}

// reset the flag
// on render link, find if there is atleast one hidden link to display "Show more" link
this._hasAtleastOneHiddenLink = false;

return (
<nav role='navigation'>
{
Expand Down Expand Up @@ -309,9 +313,16 @@ class SlimNavComponent extends NavBase {
{
links.map((link: INavLink, linkIndex: number) => {
if (enableCustomization && link.isHidden && !showMore) {
// atleast one link is hidden
this._hasAtleastOneHiddenLink = true;

// "Show more" overrides isHidden property
return null;
}
else if (link.isShowMoreLink && !this._hasAtleastOneHiddenLink && !showMore) {
// there is no hidden link, hide "Show more" link
return null;
}
else {
return this._renderLink(link, linkIndex, nestingLevel);
}
Expand Down