Skip to content

Commit 21bd172

Browse files
committed
refactor(SidebarNavLink): extract SidebarNavLinkContent component
1 parent 9508d50 commit 21bd172

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

projects/coreui/angular/src/lib/sidebar/app-sidebar-nav/app-sidebar-nav-link.component.html

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,14 @@
33
[ngClass]="getLinkClass()"
44
[appHtmlAttr]="item.attributes"
55
>
6-
<i *ngIf="helper.hasIcon(item)" [ngClass]="item | appSidebarNavIcon"></i>
7-
<ng-container>{{item.name}}</ng-container>
8-
<span *ngIf="helper.hasBadge(item)" [ngClass]="item | appSidebarNavBadge">{{ item.badge.text }}</span>
6+
<app-sidebar-nav-link-content [item]="item"></app-sidebar-nav-link-content>
97
</a>
108
<a *ngSwitchCase="'external'"
119
[ngClass]="getLinkClass()"
1210
[href]="href"
1311
[appHtmlAttr]="item.attributes"
1412
>
15-
<i *ngIf="helper.hasIcon(item)" [ngClass]="item | appSidebarNavIcon"></i>
16-
<ng-container>{{item.name}}</ng-container>
17-
<span *ngIf="helper.hasBadge(item)" [ngClass]="item | appSidebarNavBadge">{{ item.badge.text }}</span>
13+
<app-sidebar-nav-link-content [item]="item"></app-sidebar-nav-link-content>
1814
</a>
1915
<a *ngSwitchDefault
2016
[ngClass]="getLinkClass()"
@@ -25,8 +21,6 @@
2521
[routerLink]="item.url"
2622
(click)="hideMobile()"
2723
>
28-
<i *ngIf="helper.hasIcon(item)" [ngClass]="item | appSidebarNavIcon"></i>
29-
<ng-container>{{item.name}}</ng-container>
30-
<span *ngIf="helper.hasBadge(item)" [ngClass]="item | appSidebarNavBadge">{{ item.badge.text }}</span>
24+
<app-sidebar-nav-link-content [item]="item"></app-sidebar-nav-link-content>
3125
</a>
3226
</ng-container>

projects/coreui/angular/src/lib/sidebar/app-sidebar-nav/app-sidebar-nav-link.component.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,24 @@ import {Component, Inject, Input, OnInit, Renderer2} from '@angular/core';
22
import {DOCUMENT} from '@angular/common';
33
import {SidebarNavHelper} from '../app-sidebar-nav.service';
44

5+
@Component({
6+
selector: 'app-sidebar-nav-link-content',
7+
template: `
8+
<ng-container *ngIf="true">
9+
<i *ngIf="helper.hasIcon(item)" [ngClass]="item | appSidebarNavIcon"></i>
10+
<ng-container>{{item.name}}</ng-container>
11+
<span *ngIf="helper.hasBadge(item)" [ngClass]="item | appSidebarNavBadge">{{ item.badge.text }}</span>
12+
</ng-container>
13+
`,
14+
providers: [ SidebarNavHelper ]
15+
})
16+
export class AppSidebarNavLinkContentComponent {
17+
@Input() item: any;
18+
constructor(
19+
public helper: SidebarNavHelper
20+
) { }
21+
}
22+
523
@Component({
624
selector: 'app-sidebar-nav-link',
725
templateUrl: './app-sidebar-nav-link.component.html',

projects/coreui/angular/src/lib/sidebar/app-sidebar.module.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { AppSidebarNavComponent } from './app-sidebar-nav.component';
1515
import { AppSidebarNavDividerComponent } from './app-sidebar-nav/app-sidebar-nav-divider.component';
1616
import { AppSidebarNavDropdownComponent } from './app-sidebar-nav/app-sidebar-nav-dropdown.component';
1717
import { AppSidebarNavItemsComponent } from './app-sidebar-nav/app-sidebar-nav-items.component';
18-
import { AppSidebarNavLinkComponent } from './app-sidebar-nav/app-sidebar-nav-link.component';
18+
import { AppSidebarNavLinkComponent, AppSidebarNavLinkContentComponent } from './app-sidebar-nav/app-sidebar-nav-link.component';
1919
import { AppSidebarNavTitleComponent } from './app-sidebar-nav/app-sidebar-nav-title.component';
2020
import { SidebarNavHelper } from './app-sidebar-nav.service';
2121
import { AppSidebarNavLabelComponent } from './app-sidebar-nav/app-sidebar-nav-label.component';
@@ -40,6 +40,7 @@ import { AppSidebarNavItemClassPipe } from './app-sidebar-nav/app-sidebar-nav-it
4040
AppSidebarNavDividerComponent,
4141
AppSidebarNavDropdownComponent,
4242
AppSidebarNavLinkComponent,
43+
AppSidebarNavLinkContentComponent,
4344
AppSidebarNavTitleComponent,
4445
NavDropdownDirective,
4546
NavDropdownToggleDirective,
@@ -57,6 +58,7 @@ import { AppSidebarNavItemClassPipe } from './app-sidebar-nav/app-sidebar-nav-it
5758
AppSidebarNavDividerComponent,
5859
AppSidebarNavDropdownComponent,
5960
AppSidebarNavLinkComponent,
61+
AppSidebarNavLinkContentComponent,
6062
AppSidebarNavTitleComponent,
6163
NavDropdownDirective,
6264
NavDropdownToggleDirective,

0 commit comments

Comments
 (0)