import { Component, OnInit, Input } from '@angular/core'; import { Target } from '@overflow/commons-typescript/model/target'; import {TargetService} from '../service/target.service'; import { Observable, of } from 'rxjs'; import { Store } from '@ngrx/store'; import { catchError, map, tap, take } from 'rxjs/operators'; @Component({ selector: 'of-target-detail', templateUrl: './target-detail.component.html', }) export class TargetDetailComponent implements OnInit { @Input() targetID: number; target: Target; pending$: Observable; error$: Observable; constructor( private store: Store, private targetService: TargetService, ) { } ngOnInit() { this.targetService.read(this.targetID) .pipe( tap(() => { this.pending$ = of(true); }), map((target: Target) => { this.target = target; }), catchError(err => { console.log(err); return err; }), tap(() => { this.pending$ = of(false); }), take(1), ).subscribe(); } onDisplayNameChangeKeypress(event, value) { } onDisplayNameChange(value) { } } // // export class DetailComponent implements OnInit { // // @Input() targetID: number; // // target: Target; // // // infra$: Observable; // // infraSubscription$: Subscription; // // sensorsSubscription$: Subscription; // // // sensors$ = this.sensorListStore.pipe(select(sensorListSelector.select('page'))); // // target$: Observable; // // // // infraId = null; // // infra: Infra; // // sensors: Sensor[]; // // sensorsCount = 0; // // sensorSettingDisplay = false; // // // // pageSize = '10'; // // totalLength = 0; // // currPage = 0; // // constructor( // private store: Store, // private targetService: TargetService, // ) { } // // ngOnInit() { // this.tar // // this.infraSubscription$ = this.infra$.subscribe( // // (infra: Infra) => { // // this.infra = infra; // // }, // // (error: RPCClientError) => { // // console.log(error.response.message); // // } // // ); // // this.sensorsSubscription$ = this.sensors$.subscribe( // // (page: Page) => { // // if (page) { // // this.sensorsCount = page.totalElements; // // this.sensors = page.content; // // } // // }, // // (error: RPCClientError) => { // // console.log(error.response.message); // // } // // ); // } // // ngAfterContentInit() { // // this.infraId = this.route.snapshot.paramMap.get('id'); // // this.getInfra(); // // this.getSensors(this.currPage); // } // // ngOnDestroy() { // // if (this.infraSubscription$) { // // this.infraSubscription$.unsubscribe(); // // } // } // // getInfra() { // // this.infraDetailStore.dispatch( // // new InfraDetailStore.Read( // // { id: this.infraId } // // ) // // ); // } // // getSensors(pageIndex) { // // const pageParams: PageParams = { // // pageNo: pageIndex + '', // // countPerPage: this.pageSize, // // sortCol: 'id', // // sortDirection: 'descending' // // }; // // this.sensorListStore.dispatch( // // new SensorListStore.ReadAllByInfra( // // { id: this.infraId, pageParams: pageParams } // // ) // // ); // } // // onAddSensor() { // // this.sensorSettingDisplay = true; // } // // onSensorSettingClose() { // // this.sensorSettingDisplay = false; // } // // onPaging(e) { // // this.getSensors(e.page); // } // // onRowSelect(event) { // // this.router.navigate(['sensor', event.data.id, 'info']); // } // // onTraceroute() { // // alert('지원 예정'); // } // // // onDisplayNameChange(value: string) { // // if (value === this.infra.target.displayName) { // // return; // // } // // const target = this.infra.target; // // target.displayName = value; // // this.targetModifyStore.dispatch( // // new TargetModifyStore.Modify(target) // // ); // // // const modifySuccessSubscription$: Subscription = this.target$.subscribe( // // (t: Target) => { // // if (t) { // // } // // if (modifySuccessSubscription$) { // // modifySuccessSubscription$.unsubscribe(); // // } // // }, // // (error: RPCClientError) => { // // console.log(error); // // } // // ); // } // // onDisplayNameChangeKeypress(event, value) { // // if (event.key === 'Enter') { // // this.onDisplayNameChange(value); // // } // } // // }