Skip to content

Commit 0f65877

Browse files
committed
feat(SidebarService): add SidebarService with observable actions
1 parent f3bf677 commit 0f65877

File tree

3 files changed

+37
-1
lines changed

3 files changed

+37
-1
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import { AppSidebarFooterComponent } from './app-sidebar-footer.component';
99
import { AppSidebarFormComponent } from './app-sidebar-form.component';
1010
import { AppSidebarHeaderComponent } from './app-sidebar-header.component';
1111
import { AppSidebarMinimizerComponent } from './app-sidebar-minimizer.component';
12+
import { AppSidebarService } from './app-sidebar.service';
13+
1214
// App SidebarNav Component
1315
import { NavDropdownDirective, NavDropdownToggleDirective } from './app-sidebar-nav.directive';
1416
import { AppSidebarNavComponent } from './app-sidebar-nav.component';
@@ -70,7 +72,8 @@ import { AppSidebarNavItemClassPipe } from './app-sidebar-nav/app-sidebar-nav-it
7072
AppSidebarNavItemClassPipe
7173
],
7274
providers: [
73-
SidebarNavHelper
75+
SidebarNavHelper,
76+
AppSidebarService
7477
]
7578
})
7679
export class AppSidebarModule { }
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { TestBed } from '@angular/core/testing';
2+
3+
import { AppSidebarService } from './app-sidebar.service';
4+
5+
describe('AppSidebarService', () => {
6+
beforeEach(() => TestBed.configureTestingModule({}));
7+
8+
it('should be created', () => {
9+
const service: AppSidebarService = TestBed.get(AppSidebarService);
10+
expect(service).toBeTruthy();
11+
});
12+
});
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { Injectable } from '@angular/core';
2+
import { BehaviorSubject } from 'rxjs';
3+
4+
export interface ISidebarAction {
5+
minimize?: boolean | 'toggle';
6+
}
7+
8+
@Injectable({
9+
providedIn: 'root'
10+
})
11+
export class AppSidebarService {
12+
13+
private events = new BehaviorSubject<ISidebarAction>({});
14+
events$ = this.events.asObservable();
15+
16+
constructor() {}
17+
18+
toggle(action: ISidebarAction) {
19+
this.events.next(action);
20+
}
21+
}

0 commit comments

Comments
 (0)