Skip to content

Commit 0552e75

Browse files
committed
refactor(sidebar): add pipe SidebarNavItemClass #74
1 parent 108cccb commit 0552e75

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { AppSidebarNavItemClassPipe } from './app-sidebar-nav-item-class.pipe';
2+
3+
describe('SidebarNavItemClassPipe', () => {
4+
it('create an instance', () => {
5+
const pipe = new AppSidebarNavItemClassPipe();
6+
expect(pipe).toBeTruthy();
7+
});
8+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { Pipe, PipeTransform } from '@angular/core';
2+
3+
import {SidebarNavHelper} from '../app-sidebar-nav.service';
4+
5+
@Pipe({
6+
name: 'appSidebarNavItemClass'
7+
})
8+
export class AppSidebarNavItemClassPipe implements PipeTransform {
9+
10+
constructor(
11+
public helper: SidebarNavHelper
12+
) {}
13+
14+
transform(item: any, ...args: any[]): any {
15+
const itemType = this.helper.itemType(item);
16+
let itemClass;
17+
if (['divider', 'title'].includes(itemType)) {
18+
itemClass = `nav-${itemType}`;
19+
} else if (itemType === 'dropdown') {
20+
itemClass = 'nav-item nav-dropdown' ;
21+
} else {
22+
itemClass = 'nav-item';
23+
}
24+
return item.class ? `${itemClass} ${item.class}` : itemClass;
25+
}
26+
}

0 commit comments

Comments
 (0)