import { Component, Input, OnInit, OnDestroy } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; import { Router } from '@angular/router'; import { Observable, Subscription } from 'rxjs'; import { copyToClipboard } from '../../../utils/utils-functions'; @Component({ selector: 'app-pimp-links-tile', template: `

Pimp links

` }) export class PimpLinksTileComponent implements OnInit, OnDestroy { @Input() linksStream:Observable; private subs:Subscription; private links = []; constructor(private sanitizer:DomSanitizer, private router:Router) { } private sanitize(url:string) { return this.sanitizer.bypassSecurityTrustUrl(url); } private onClickEdit() { this.router.navigate(['/configuration']); } private onClipboardCopy(evt) { copyToClipboard(evt); } ngOnInit() { this.subs = this.linksStream.subscribe(links => { if(JSON.stringify(links) !== JSON.stringify({})) { this.links = [ { type:'link', href: links.originURL, title: 'Origin URL', icon: 'link' }, { type:'link', href: links.proxiedURL, title: 'Pimped URL', icon: 'link' }, { type:'link', href: links.bsUIURL, title: 'BrowserSync interface', icon: 'developer_board' }, { type:'copy', href: links.pimpSrcFilesPath, title: 'Pimp source files', icon: 'folder_open', subIcon:'content_paste' } ]; } else { this.links = []; } }); } ngOnDestroy() { this.subs.unsubscribe(); } }