@@ -4,7 +4,8 @@ import { NbMediaBreakpointsService, NbMenuService, NbSidebarService, NbThemeServ
44import { UserData } from '../../../@core/data/users' ;
55import { LayoutService } from '../../../@core/utils' ;
66import { map , takeUntil } from 'rxjs/operators' ;
7- import { Subject } from 'rxjs' ;
7+ import { Subject , Observable } from 'rxjs' ;
8+ import { RippleService } from '../../../@core/utils/ripple.service' ;
89
910@Component ( {
1011 selector : 'ngx-header' ,
@@ -14,6 +15,7 @@ import { Subject } from 'rxjs';
1415export class HeaderComponent implements OnInit , OnDestroy {
1516
1617 private destroy$ : Subject < void > = new Subject < void > ( ) ;
18+ public readonly materialTheme$ : Observable < boolean > ;
1719 userPictureOnly : boolean = false ;
1820 user : any ;
1921
@@ -34,18 +36,34 @@ export class HeaderComponent implements OnInit, OnDestroy {
3436 value : 'corporate' ,
3537 name : 'Corporate' ,
3638 } ,
39+ {
40+ value : 'material-light' ,
41+ name : 'Material Light' ,
42+ } ,
43+ {
44+ value : 'material-dark' ,
45+ name : 'Material Dark' ,
46+ } ,
3747 ] ;
3848
3949 currentTheme = 'default' ;
4050
4151 userMenu = [ { title : 'Profile' } , { title : 'Log out' } ] ;
4252
43- constructor ( private sidebarService : NbSidebarService ,
44- private menuService : NbMenuService ,
45- private themeService : NbThemeService ,
46- private userService : UserData ,
47- private layoutService : LayoutService ,
48- private breakpointService : NbMediaBreakpointsService ) {
53+ public constructor (
54+ private sidebarService : NbSidebarService ,
55+ private menuService : NbMenuService ,
56+ private themeService : NbThemeService ,
57+ private userService : UserData ,
58+ private layoutService : LayoutService ,
59+ private breakpointService : NbMediaBreakpointsService ,
60+ private rippleService : RippleService ,
61+ ) {
62+ this . materialTheme$ = this . themeService . onThemeChange ( )
63+ . pipe ( map ( theme => {
64+ const themeName : string = theme ?. name || '' ;
65+ return themeName . startsWith ( 'material' ) ;
66+ } ) ) ;
4967 }
5068
5169 ngOnInit ( ) {
@@ -68,7 +86,10 @@ export class HeaderComponent implements OnInit, OnDestroy {
6886 map ( ( { name } ) => name ) ,
6987 takeUntil ( this . destroy$ ) ,
7088 )
71- . subscribe ( themeName => this . currentTheme = themeName ) ;
89+ . subscribe ( themeName => {
90+ this . currentTheme = themeName ;
91+ this . rippleService . toggle ( themeName ?. startsWith ( 'material' ) ) ;
92+ } ) ;
7293 }
7394
7495 ngOnDestroy ( ) {
0 commit comments