import { Component, OnInit } from '@angular/core'; import { AfterContentInit, OnDestroy } from '@angular/core/src/metadata/lifecycle_hooks'; import { Store, select } from '@ngrx/store'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/operator/map'; import { AuthSelector } from '@overflow/member/store'; import { Domain } from '@overflow/commons-typescript/model/domain'; import * as ListStore from '../../store/noauth-probe'; import { NoAuthProbeSelector } from '../../store'; import { NoAuthProbe } from '@overflow/commons-typescript/model/noauth'; import { ConfirmationService } from 'primeng/primeng'; import { MessageService } from 'primeng/components/common/messageservice'; @Component({ selector: 'of-noauth-list-container', templateUrl: './list-container.component.html', providers: [ConfirmationService, MessageService] }) export class NoAuthProbeListContainerComponent implements OnInit, AfterContentInit, OnDestroy { noauthProbes$: Observable; constructor( private store: Store, ) { } ngOnInit() { this.noauthProbes$ = this.store.pipe(select(NoAuthProbeSelector.select('noAuthProbes'))).map((_noauthProbes: NoAuthProbe[]) => { if (null === _noauthProbes) { return null; } _noauthProbes.forEach(_noauthProbe => { _noauthProbe.descriptions = JSON.parse(_noauthProbe.description); }); return _noauthProbes; }); } ngAfterContentInit() { this.store.select(AuthSelector.select('domain')).subscribe( (domain: Domain) => { this.store.dispatch(new ListStore.ReadAllByDomain(domain)); } ); } ngOnDestroy() { } accept(selected) { this.store.dispatch(new ListStore.Accept(selected)); } deny(selected) { this.store.dispatch(new ListStore.Deny(selected)); } }