10000 feat(SidebarNav): navLink `attributes` · free-4-all/coreui-react@38df53a · GitHub
[go: up one dir, main page]

Skip to content

Commit 38df53a

Browse files
committed
feat(SidebarNav): navLink attributes
- optional JS object with valid JS API naming: - valid attributes: `rel`, `target`, `hidden`, `disabled`, etc... ```json { name: 'Try CoreUI PRO', url: 'https://coreui.io/pro/react/', icon: 'cui-layers icons', variant: 'danger', attributes: { target: '_blank', rel: "noopener" }, }, ```
1 parent 2cd62df commit 38df53a

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/SidebarNav.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,15 +133,22 @@ class AppSidebarNav extends Component {
133133
// nav link
134134
navLink(item, key, classes) {
135135
const url = item.url ? item.url : '';
136+
const itemIcon = <i className={classes.icon} />
137+
const itemBadge = this.navBadge(item.badge)
138+
const attributes = item.attributes || {}
136139
return (
137140
<NavItem key={key} className={classes.item}>
138-
{
141+
{ attributes.disabled ?
142+
<RsNavLink href={""} className={classes.link} {...attributes}>
143+
{itemIcon}{item.name}{itemBadge}
144+
</RsNavLink>
145+
:
139146
this.isExternal(url) ?
140-
<RsNavLink href={url} className={classes.link} active>
141-
<i className={classes.icon} />{item.name}{this.navBadge(item.badge)}
147+
<RsNavLink href={url} className={classes.link} active {...attributes}>
148+
{itemIcon}{item.name}{itemBadge}
142149
</RsNavLink> :
143-
<NavLink to={url} className={classes.link} activeClassName="active" onClick={this.hideMobile}>
144-
<i className={classes.icon} />{item.name}{this.navBadge(item.badge)}
150+
<NavLink to={url} className={classes.link} activeClassName="active" onClick={this.hideMobile} {...attributes}>
151+
{itemIcon}{item.name}{itemBadge}
145152
</NavLink>
146153
}
147154
</NavItem>

src/SidebarNav.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ tag | `nav`
3535
variant: 'info',
3636
text: 'NEW',
3737
class: '' // optional
38-
}
38+
},
39+
attributes: { target: '_blank', rel: "noreferrer noopener", disabled: false, hidden: false }, // (v2.1.0 up) optional valid JS object with JS API naming
3940
},
4041
````
4142
- item with `children` array - works like `nav-dropdown-toggle` with `nav-dropdown-items`

0 commit comments

Comments
 (0)
0