import { Component, OnInit, Inject, AfterContentInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { ConfirmationService } from 'primeng/primeng'; import { Store, select } from '@ngrx/store'; import { RPCClientError } from '@loafer/ng-rpc/protocol'; import * as DetailStore from '../../store/detail'; import { sensorSelector } from '../../store'; import { Sensor } from '../../model'; @Component({ selector: 'of-sensor-detail', templateUrl: './detail.component.html', providers: [ConfirmationService] }) export class DetailComponent implements OnInit, AfterContentInit { sensor$ = this.detailStore.pipe(select(sensorSelector.select('sensor'))); sensor: Sensor; constructor( private route: ActivatedRoute, private router: Router, private confirmationService: ConfirmationService, private detailStore: Store, ) { } ngOnInit() { this.sensor$.subscribe( (sensor: Sensor) => { console.log(sensor); this.sensor = sensor; }, (error: RPCClientError) => { console.log(error.response.message); } ); } ngAfterContentInit() { const sensorId = this.route.snapshot.paramMap.get('id'); this.detailStore.dispatch( new DetailStore.Read( { id: sensorId } ) ); } onStartOrStop() { } onEdit() { } onRemove() { this.confirmationService.confirm({ header: 'Are you sure to remove this Sensor?', icon: 'fa fa-trash', message: 'All the related data will be deleted. ', accept: () => { alert('으앙 안돼 지우지마ㅠㅠ'); }, reject: () => { } }); } }