Project

General

Profile

1
import {Injectable} from "@angular/core";
2
import {BehaviorSubject, Observable} from "rxjs";
3

    
4
@Injectable({
5
  providedIn: 'root'
6
})
7
export class SideBarService {
8

    
9
  /**
10
   * Set this to true when sidebar items are ready.
11
   */
12
  private openSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
13

    
14
  /**
15
   *  Set this variable to false on Init of components that is not needed to have sidebar
16
   *  and on Destroy set this to true.
17
   */
18
  private hasSidebarSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);
19

    
20
  constructor() {}
21

    
22
  get open(): boolean {
23
    return this.openSubject.getValue();
24
  }
25

    
26
  setOpen(value: boolean) {
27
    this.openSubject.next(value);
28
  }
29

    
30
  get hasSidebar(): Observable<boolean> {
31
    return this.hasSidebarSubject.asObservable();
32
  }
33

    
34
  setHasSidebar(value: boolean) {
35
    this.hasSidebarSubject.next(value);
36
  }
37
}
(4-4/4)