import { Router, ActivatedRoute, NavigationEnd } from '@angular/router'; import { Component, OnInit, Input, Output, EventEmitter, OnDestroy } from '@angular/core'; import { Message, MessageRes, MessageApiService } from '@karmed/api'; import { filter } from 'rxjs/operators'; import { Subscription } from 'rxjs'; @Component({ selector: 'app-list', templateUrl: './list.component.html', styleUrls: ['./list.component.css'] }) export class ListComponent implements OnInit, OnDestroy { @Input() public data: Message[]; msgHeader: MessageRes; mparam: any; subScription:Subscription; @Output() public openOnPost: EventEmitter = new EventEmitter(); constructor(private msg: MessageApiService, private router: Router, private root: ActivatedRoute) { this.msgHeader = new MessageRes(); } ngOnDestroy() { console.log("un"); this.subScription.unsubscribe(); } ngOnInit() { console.log("init"); this.subScription=this.router.events .pipe(filter(event => event instanceof NavigationEnd)) .subscribe(() => { if (!this.router.url.includes('list')) return; this.mparam = this.root.snapshot.queryParams["m"]; this.onTabChanges(this.mparam); }); this.mparam = this.root.snapshot.queryParams["m"]; this.onTabChanges(this.mparam); } onTabChanges(e) { this.msgHeader.Baslangic = new Date(2010,1,1); this.msgHeader.Bitis = new Date(); this.msgHeader.ListeTur = e == 3 ? 2 : 1; // Gönderilenler isteniyorsa liste türü 2 değilse 1 this.msgHeader.Tur = e == 3 ? 1 : e; this.msg.getMessages(this.msgHeader).subscribe(r => { this.data = r; }); } onRead(e) { var msg = this.data.filter(q => q.Id == e); this.router.navigate(['karmed/message/read'], { state: { okunan: msg[0] } }); } }