import {Injectable} from '@angular/core';
import {BehaviorSubject, Subject} from 'rxjs';

@Injectable()
export class LecturerViewService {

  private onDashboardSource = new BehaviorSubject<Boolean>(true);
  private onCreatePaperSource = new BehaviorSubject<Boolean>(false);
  private onCreateTemplateSource = new BehaviorSubject<Boolean>(false);
  private onTemplateViewSource = new BehaviorSubject<Boolean>(false);


  public onDashboard$ = this.onDashboardSource.asObservable();
  public onCreatePaper$ = this.onCreatePaperSource.asObservable();
  public onCreateTemplate$ = this.onCreateTemplateSource.asObservable();
  public onTemplateView$ = this.onTemplateViewSource.asObservable();

  public changeToDashboard(flag: Boolean) {
    if (flag) {
      this.onDashboardSource.next(flag);
      this.onCreatePaperSource.next(false);
      this.onCreateTemplateSource.next(false);
      this.onTemplateViewSource.next(false);
    }
  }

  public changeToCreatePaper(flag: Boolean) {
    if (flag) {
      this.onCreatePaperSource.next(flag);
      this.onDashboardSource.next(!flag);
      this.onCreateTemplateSource.next(!flag);
      this.onTemplateViewSource.next(!flag);
    }
  }

  public changeToCreateTemplate(flag: Boolean) {
    if (flag) {
      this.onCreateTemplateSource.next(flag);
      this.onCreatePaperSource.next(!flag);
      this.onDashboardSource.next(!flag);
      this.onTemplateViewSource.next(!flag);
    }
  }

  public changeToTemplateView(flag: Boolean) {
    if (flag) {
      this.onTemplateViewSource.next(flag);
      this.onCreatePaperSource.next(!flag);
      this.onCreateTemplateSource.next(!flag);
      this.onDashboardSource.next(!flag);
    }
  }

  public changeToPaperview(flag: Boolean) {
    if (flag) {
      this.onTemplateViewSource.next(!flag);
      this.onCreatePaperSource.next(!flag);
      this.onCreateTemplateSource.next(!flag);
      this.onDashboardSource.next(!flag);
    }
  }

}