import { Component, ViewEncapsulation, OnInit } from '@angular/core'; import { Store } from '@ngrx/store'; import { Observable } from 'rxjs'; import { LoginToken } from '../../login/store/model'; import * as loginActions from '../../login/store/login.action'; import * as loginReducer from '../../login/store/login.reducer'; import * as loginSelector from '../../login/store/login.selector'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: [ './app.component.css' ], encapsulation: ViewEncapsulation.None }) export class AppComponent implements OnInit { public year = (new Date()).getFullYear(); public isAuthenticated: Observable<boolean>; public loginToken: Observable<LoginToken>; constructor(private store: Store<loginReducer.State>) { this.isAuthenticated = store.select(loginSelector.isAuthenticated); this.loginToken = store.select(loginSelector.getLoginToken); } ngOnInit() { this.store.dispatch(new loginActions.LoginLocalStorageAction()); } logout() { this.store.dispatch(new loginActions.LogoutAction()); } }